“No database selected” en Mysql y php funcion: mysql_select_db (solucionado)

Depues de perder bastante tiempo intentando conectar a una base de datos mediante php. hemos dedicidido hacer este mini método de conexion o clase:

El problema venia dado por que despues de conectar el usuario que tenia acceso a la base de datos tenia predeterminada otra base de datos, en concreto este usuario tenia acceso a dos Bases de datos. Para poder seleccionar la base de datos que nos interesa cada vez, es necesario utilizar la funcion de php:

mysql_select_db('nombreDeLaBaseDeDatos',$linK_resoure_BD);

donde el primer parametro es el string con el nombre de la base de datos y el segundo el identificador que devuelve la funcion mysl_connect('servidor.com O localhost', 'usuario','contraseña'). El primer parametro si se deja vacío se interpreta como si se conectara en localhost. si se quiere indicar un puerto distinto al normal 3306, en el primer campo podemos poner por ejemplo: localhost:4500 , añadiendo el puerto precedido de dos puntos ':' será suficiente para conectar a aun servidor mysql en distinto puerto del predeterminado

De todas manera el parámetro $linK_resoure_BD es opcional y si no se pone php recoge el ultimo identificador de conexión abierto con la base de datos.

Otra menera de hacerlo es lanzar la consulta a la Base de datos que nos cambia o selecciona la BD. esto seria así:

mysql_querry('USE NombreDeTuBaseDeDatos',$link_resource_BD);

Nuevamente el parametro $link_resource_BD, es opcional y no es necesario si acabamos de conectar con la base de datos y estamos seguros de que solo usamos una conexión. Esta SQL es útil para seleccionar bases de datos y realizar consultas en varias de ellas.

Clase y Funcion PHP para conctar a MYSQL desde PHP

PHP:
  1. // evita que se duplique la clase
  2. if (!class_exists('bdmysql')){
  3.  
  4. #***********************************************************************************
  5. #
  6. # Clase BdMysql:
  7. #
  8. # Serveix per conectar con la BD Mysql y poder fer consultes y demes coses.
  9. #
  10. # Última modificación 11/12/2006
  11. # Autor : STI Vilanova Cristian, Edu.
  12. #
  13. #***********************************************************************************
  14. include_once("dadesConexio.php");// obtenir les dades de conexio
  15.  
  16. class BdMysql {
  17.  
  18. var $conexioBd;
  19. var $servidor;
  20. var $usuari;
  21. var $password;
  22. var $baseDeDades;
  23.  
  24. #***********************************************************************************
  25. # Cosntructor Vacio de la clase BdMysql:
  26. #
  27. # La seva misio es ferl'objecte d'acces a base de dades. Obte les dades de
  28. # dades conexio
  29. #***********************************************************************************
  30.  
  31. function BdMysql(){
  32.  
  33. $objecteDadesConexio = new DadesConexio();
  34. $this->servidor=$objecteDadesConexio->localhost;
  35. $this->usuari=$objecteDadesConexio->sqlUsuari;
  36. $this->password=$objecteDadesConexio->sqlPass;
  37. $this->baseDeDades=$objecteDadesConexio->baseDeDades;
  38.  
  39. function Conectar() {
  40. //echo 'servidor: '.$this->servidor.'-usuario: '.$this->usuari.'-pass: '.$this->password;
  41. $this->conexioBd = mysql_connect($this->servidor, $this->usuari, $this->password);
  42.  
  43. if (!$this->conexioBd || !mysql_select_db($this->baseDeDades, $this->conexioBd)) {
  44. return false;
  45. } else {
  46. mysql_query("SET NAMES 'utf8'");
  47. return true;
  48. }
  49. }
  50. }// fin classe
  51. ?>
  52. #***********************************************************************************
  53. #
  54. # Clase DadesConexio:
  55. #
  56. # // Aqui totes les dades de conexio a la BD, sutilitzen directament a DbMysql
  57. #
  58. # Última modificación 21/11/2006
  59. # Autor : STI Vilanova Cristian.
  60. #
  61. #***********************************************************************************
  62.  
  63. class DadesConexio{
  64.  
  65. var $localhost;
  66. var $sqlUsuari ;
  67. var $sqlPass;
  68. var $baseDeDades;
  69.  
  70. #***********************************************************************************
  71. # Cosntructor buit de la clase DadesConexio:
  72. #
  73. # Inicialitza els paràmetres de la conxio. Es una pseudoClase.
  74. # te fixats els parametres.
  75. #*********************************************************************************
  76.  
  77. function DadesConexio() {
  78.  
  79. $this->localhost= "localhost:3300";
  80. $this->sqlUsuari = "usuario";
  81. $this->sqlPass = "contraseña";
  82. $this->baseDeDades="basededatos";
  83.  
  84. }
  85. }
  86. ?>

 

 

Finalmente el problema era el nombre de la Base de datos, así que verificar primero bien el nombre de la base de datos, que el usuario tenga permisos de acceso y este bien.

Etiquetas: , , , , , , ,

Deja un comentario

CAPTCHA Image Audio Version
Reload Image