Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Conexion de PHP a MySQL (https://www.clubdelphi.com/foros/showthread.php?t=84796)

Alejandro73 06-12-2013 19:28:43

Conexion de PHP a MySQL
 
Estimados

Tengo la siguiente duda, realizo una conexion a MySql desde php de la siguiente manera

Código PHP:

$conexion=mysql_connect("valor_host""valor_usuario""valor_contraseña") or die ('No podemos conectar a la BD porque: ' mysql_error());
mysql_select_db ("nombre_bd");  

session_start();
$sql "select * from nombre_tabla where campo1=varlor_campo1";    
$result=mysql_query($sql); 

if (! 
$result)
{
 echo 
'La consulta SQL contiene errores '.mysql_error();
 exit();
}
else 
{
 echo 
'La consulta SQL NO contiene errores';
 exit();


Lamentablemente siempre me devuelte lo siguiente:

"La consulta SQL contiene errores Access denied for user ''@'localhost' (using password: NO)"

Si alguien tiene alguna idea de que estoy haciendo mal.

Desde ya muchas gracias por sus ayudas.

Ñuño Martínez 12-12-2013 12:06:01

No te recomiendo que hagas lo que haces en la primera línea de tu código. Puede funcionar, sí, pero si el intérprete PHP está compilado de forma que no trunque las expresiones booleanas (podría ser) te verás en problemas. También podría pasar que mysql_connect devuelva un valor diferente de false pero que sea interpretado como tal en la expresión, y de nuevo te verás en problemas. Y lo peor de todo: es difícil de leer, y PHP ya es bastante críptico por sí sólo como para encima complicarlo más. De veras que no entiendo por qué lo hacéis.

En cuanto a tu pregunta, te recomiendo que uses la variable $conexion al seleccionar la base de datos y almacenes el resultado de dicha selección para poder usarla al hacer la consulta. También te recomiendo que compruebes cada paso ya que el error podría no estar en la consulta (que es lo que sospecho). Es decir:
Código PHP:

<?php
$Conexion 
mysql_connect ("valor_host""valor_usuario""valor_contraseña");
if (
$Conexion === false)
  die (
'No se pudo conectar con el gestor de bases de datos: ' mysql_error ());

$BaseDatos mysql_select_db ("nombre_bd"$Conexion); 
if (
$BaseDatos === false)
  die (
'No pudo seleccionarse la base de datos: '.mysql_error ());

session_start();
$sql "select * from nombre_tabla where campo1=varlor_campo1";    
$Consulta mysql_query ($sql$BaseDatos); 

if (
$Consulta === false)
  die (
'La consulta SQL contiene errores '.mysql_error ());
elseif (
$Consulta === true)
  echo 
'La consulta SQL fue un éxito.';
else
  echo 
'La consulta SQL devolvió valores.';

Observa el uso del operador "===" en vez del operador "==". Así garantizas que la comparación es exacta y que el intérprete no realizará ningún tipo de conversión de datos. Lo cierto es que en este caso es redundante, pero es una buena costumbre, sobre todo para la comprobación del resultado de mysql_query.

Alejandro73 12-12-2013 13:02:38

Gracias por responder, pero sin realizar ningun cambio en el codigo ya esta funcionando.


La franja horaria es GMT +2. Ahora son las 02:46:29.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi