> Faqs > Solucionar error PHP "No Database selected"

Solucionar error PHP "No Database selected"

Hola a todos, tengo una web local (en mi pc) y al quererla subir al hosting que contraté y probarla, me marca "No database selected".

Mi aplicación está hecha en Dreamweaver y el archivo PHP de conexión está en este formato. He buscado en varios sitios de la red y no encuentro respuesta por lo que pido su ayuda, el código del archivo de conexión está así;

Archivo conn.php

<?php 
# FileName="Connection_php_mysql.htm" 
# Type="MYSQL" 
# HTTP="true" $hostname_conn = "localhost"; 
$database_conn = "mydominio_bd"; 
$username_conn = "midominio_usuario"; 
$password_conn = "pass"; 
$conn = mysql_connect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR); 
?> 

Página de búsqueda "buscar.php"

<?php require_once('../Connections/conn.php'); 
// ... 
mysql_select_db($database_conn, $conn); 
$query_buscar = "SELECT sNoParte,gFoto1,sDescCorta FROM tproducto WHERE sDescCorta LIKE '%carro%' ORDER BY sDescCorta"; 
$buscar = mysql_query($query_buscar, $conn) or die(mysql_error()); 
$row_buscar = mysql_fetch_assoc($buscar); 
$totalRows_buscar = mysql_num_rows($buscar); 
?> 

He probado con mysql_pconnect() y tampoco funciona.

¿Le ha sucedido a alguien algo así?

SALUDOS

Respuestas

Para empezar, tu código es algo antiguo... debes usar las extensiones de MySQL nuevas (mysqli).

El problema que tienes es que mysql_select_db() (que actualmente con MySQLi deberías usar mysqli_select_db()) se utiliza para cambiar la base de datos con la que estás conectado.

Por lo que veo en tu código, la conexión con la base de datos que tenías hecha no está asociada a una base de datos, por lo que no te permite cambiarla.

Te paso un código que debería funcionar:

<?php
$conn = mysqli_connect("localhost", "user", "pass", "la_base_de_datos_que_quieras_usar");
// ... todo tu resto de código para usar esta base de datos.

Como ves, al hacer la conexión ya le indicamos la base de datos con la que queremos conectar. Así no te dará el error "No database selected".

En adelante podrías cambiar la base de datos a otra con mysqli_select_db()

// cambiar la conexión a otra base de datos
mysqli_select_db($link, "otra_base_de_datos");

Pero esto solo lo tendrías que hacer en el caso que tengas más de una base de datos que usar con la misma conexión a la base de datos que has iniciado. No creo que sea un caso muy común.

Gustavo
139 2 11 10

Para comenzar crea un archivo que se llame conectar.php y que tenga el codigo de conectar a la base de datos, este codigo es uno muy sencillo ejemplo de ello:

Archivo: conectar.php

<?php 
mysql_connect("localhost", "usuario", "clave") OR DIE("No ha sido posible conectar a la tabla"); 
mysql_select_db("nombre base de datos"); 
?> 

Pues bien lo que hago cuando voy a trabajar en otro archivo que haga una busqueda solo incluyo la pagina que tiene la conexion y ya!

Ejemplo de ello:

NOTA: iba a ocupar tu codigo pero no lo entiendo mucho ocupas mucha codigo innesesario no digo que no sirva pero innesesario.

Archivo: buscar.php

<?php include("conectar.php"); 
//aqui codigo a buscar algo 
$sql = mysql_query("SELECT * FROM tabla WHERE codiciones"); 
?> 

Creo que lo unico que no hace que conectes estará en tu codigo algo esta mal, la verdad ni lo revise solo me dedique ha hacerte mencion como hago yo la conexion, la forma mas sencilla de hacerlo, bueno creo.

Espero haberte ayudado.

jorge