Foros del Web » Programando para Internet » PHP »

Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Estas en el tema de Problema ó Duda al insertar un registro en una BD MySQL (no hace nada) en el foro de PHP en Foros del Web. Buenas gente, estoy probando unas cosas en PHP y BD y resulta que estoy tratando de guardar en una base de datos MySQL dos registros, ...
  #1 (permalink)  
Antiguo 02/10/2010, 17:57
Avatar de yak_vi  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 72
Antigüedad: 19 años, 10 meses
Puntos: 1
Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Buenas gente, estoy probando unas cosas en PHP y BD y resulta que estoy tratando de guardar en una base de datos MySQL dos registros, usuario y contraseña en texto plano (posteriormente veré como codificarlos) pero resulta que creo que estoy haciendo todo bien pero resulta que no guarda el registro en la base de datos pero tampoco da error. Ya he probado localmente con XAMPP en Windows y también en un hosting con linux y tampoco hace nada. Les pongo el código para que me digan si saben donde puede estar el error

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Datos de la BD
  4. $conexion = mysql_connect("localhost" , "usuario" , "contrasenia");
  5. mysql_select_db("dbpruebas",$conexion);
  6.  
  7. $usuario = $_REQUEST['my_login'];
  8. $passwrd = $_REQUEST['my_pass'];
  9.  
  10. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";
  11. echo $sql;
  12.  
  13. ?>

P.D.: Este código ya lo tengo incrustado en otro script. Las variables de "my_pass" y "my_login" ya son definidas no están vacías.

Puse el echo para ver si me mostraba lo que me tomaba y en teoría está bien asi que no sé que puede ser lo que hago mal.

Desde ya muchas gracias!!!

Saludos!!
  #2 (permalink)  
Antiguo 02/10/2010, 18:06
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por yak_vi Ver Mensaje
Buenas gente, estoy probando unas cosas en PHP y BD y resulta que estoy tratando de guardar en una base de datos MySQL dos registros, usuario y contraseña en texto plano (posteriormente veré como codificarlos) pero resulta que creo que estoy haciendo todo bien pero resulta que no guarda el registro en la base de datos pero tampoco da error. Ya he probado localmente con XAMPP en Windows y también en un hosting con linux y tampoco hace nada. Les pongo el código para que me digan si saben donde puede estar el error

Código PHP:
Ver original
  1. <?php
  2.  
  3. // Datos de la BD
  4. $conexion = mysql_connect("localhost" , "usuario" , "contrasenia");
  5. mysql_select_db("dbpruebas",$conexion);
  6.  
  7. $usuario = $_REQUEST['my_login'];
  8. $passwrd = $_REQUEST['my_pass'];
  9.  
  10. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";
  11. echo $sql;
  12.  
  13. ?>

P.D.: Este código ya lo tengo incrustado en otro script. Las variables de "my_pass" y "my_login" ya son definidas no están vacías.

Puse el echo para ver si me mostraba lo que me tomaba y en teoría está bien asi que no sé que puede ser lo que hago mal.

Desde ya muchas gracias!!!

Saludos!!
Tu código anterior (malo):

Cita:
Código PHP:
<?php

// Datos de la BD
$conexion mysql_connect("localhost" "usuario" "contrasenia");
mysql_select_db("dbpruebas",$conexion);

$usuario $_REQUEST['my_login'];
$passwrd $_REQUEST['my_pass'];

$sql "INSERT INTO accounts (usuario, contrasenia) VALUES (" $usuario "," $passwrd "[B];[/B])";
echo 
$sql;
mysql_query($sql);

?>
El código correcto:

Código PHP:
<?php

// Datos de la BD
$conexion mysql_connect("localhost" "usuario" "contrasenia");
mysql_select_db("dbpruebas",$conexion);

$usuario $_REQUEST['my_login'];
$passwrd $_REQUEST['my_pass'];

$sql "INSERT INTO accounts (usuario, contrasenia) VALUES (" $usuario "," $passwrd ")";
echo 
$sql;
mysql_query($sql);

?>
Si no te diste cuenta, colocaste un ; punto y coma en la consulta MySQL. ;)
  #3 (permalink)  
Antiguo 02/10/2010, 18:10
Avatar de yak_vi  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 72
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por Miguelithox Ver Mensaje
Tu código anterior (malo):



El código correcto:

Código PHP:
<?php

// Datos de la BD
$conexion mysql_connect("localhost" "usuario" "contrasenia");
mysql_select_db("dbpruebas",$conexion);

$usuario $_REQUEST['my_login'];
$passwrd $_REQUEST['my_pass'];

$sql "INSERT INTO accounts (usuario, contrasenia) VALUES (" $usuario "," $passwrd ")";
echo 
$sql;
mysql_query($sql);

?>
Si no te diste cuenta, colocaste un ; punto y coma en la consulta MySQL. ;)
Muchas gracias, ya voy a probar, No, no me había dado cuenta de ese ";"!

Ya cuento que pasó :)

Saludos!!
  #4 (permalink)  
Antiguo 02/10/2010, 18:12
 
Fecha de Ingreso: noviembre-2009
Mensajes: 846
Antigüedad: 15 años, 1 mes
Puntos: 34
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Obviemos a ciertos tipos, nos ira mejor.
....
Lo primero que veo, es lo siguiente
Código PHP:
Ver original
  1. mysql_select_db("dbpruebas",$conexion)
Para seleccionar una DB se utilizan comillas simples.

Lo siguiente:
Código PHP:
Ver original
  1. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";
Values, te faltan comillas simples, seria asi:
Código PHP:
Ver original
  1. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES ('" . $usuario . "','" . $passwrd . "';)";

Por ultimo
Código PHP:
Ver original 
En la ejecucion de la consulta, hay que poner el parametro de conexion:
Código PHP:
Ver original
  1. mysql_query($sql,$conexion)

Un saludo!
  #5 (permalink)  
Antiguo 02/10/2010, 18:12
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por yak_vi Ver Mensaje
Muchas gracias, ya voy a probar, No, no me había dado cuenta de ese ";"!

Ya cuento que pasó :)

Saludos!!
Si te sirvió, dejame un karma (Y)
  #6 (permalink)  
Antiguo 02/10/2010, 18:17
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por mariomon17 Ver Mensaje
Obviemos a ciertos tipos, nos ira mejor.
....
Lo primero que veo, es lo siguiente
Código PHP:
Ver original
  1. mysql_select_db("dbpruebas",$conexion)
Para seleccionar una DB se utilizan comillas simples.

Lo siguiente:
Código PHP:
Ver original
  1. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";
Values, te faltan comillas simples, seria asi:
Código PHP:
Ver original
  1. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES ('" . $usuario . "','" . $passwrd . "';)";

Por ultimo
Código PHP:
Ver original 
En la ejecucion de la consulta, hay que poner el parametro de conexion:
Código PHP:
Ver original
  1. mysql_query($sql,$conexion)

Un saludo!
También lo de las comillas simples cuando ingresas, se me había escapado. Como dijo mariomon17.
  #7 (permalink)  
Antiguo 02/10/2010, 18:19
Avatar de yak_vi  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 72
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Solucionado, lo dejé asi (por si a alguien le sirve):

Código PHP:
Ver original
  1. <?php
  2. // Datos de la BD
  3. $conexion = mysql_connect("localhost" , "usuario" , "contrasenia");
  4. mysql_select_db("dbpruebas",$conexion);
  5.  
  6. mysql_query("INSERT INTO accounts (usuario,contrasenia) values ('" . $_REQUEST['my_login'] . "','". $_REQUEST['my_pass'] . "')") or die("error en la conexion al servidor SV1");
  7. ?>

Y funcionó bien :)

Saludos y muchas gracias desde ya!
  #8 (permalink)  
Antiguo 02/10/2010, 18:22
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por cocacola1 Ver Mensaje
Tu codigo es una porqueria !!
¿Por que no te vas de aqui?

a ver Yak_vi
unas sugernecias

si recibes los valores por un formulario, quizas sea mejor usar $_POST
y no $_REQUEST, de este modo tendrás mayor control de lo que pasa, bueno solo es una sugerencia. luego analicemos tu código

Código PHP:
Ver original
  1. <?php
  2. // Datos de la BD
  3. $conexion = mysql_connect("localhost" , "usuario" , "contrasenia");
  4. mysql_select_db("dbpruebas",$conexion);//aqui solo debes poner la tabla
  5.  
  6. $usuario = $_REQUEST['my_login'];//como dije mejor POST si es por un form
  7. $passwrd = $_REQUEST['my_pass'];
  8.  
  9. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";//en este caso usa la sintaxis de punto Ej 'BD.tabla'
  10. echo $sql;//aqui te falta algo asi $res = mysql_query($sql,$con);
  11. ?>

ahora veamos un ejemplo funcional

Código PHP:
Ver original
  1. <?php
  2. $con = mysql_connect("localhost","user","contraseña");
  3. $bd = mysql_select_db("tabla") or die ("Verifique la Base de Datos");
  4. //conectamos y con die verificamos errores de conexion
  5.  
  6. $usuario = $_POST['my_login'];//como dije mejor POST si es por un form
  7. $passwrd = $_POST['my_pass'];
  8.  
  9. $sql = "INSERT INTO nom_bd.accounts (usuario, contrasenia) VALUES (".$usuario.", ".$passwrd.");";
  10. //nom_bd es el nombre de tu base de datos
  11. //no dejes espacios al concatenar
  12. //el punto y coma va hasta al final de la cadena no antes del parentesis
  13. $res = mysql_query($sql,$con); //realizamos la insercion
  14. //aunque deberia funcionar sin el $res XD
  15. mysql_query($sql,$con);
  16. // LISTO???
  17. ?>
  #9 (permalink)  
Antiguo 02/10/2010, 18:25
Avatar de yak_vi  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 72
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por memoadian Ver Mensaje
¿Por que no te vas de aqui?

a ver Yak_vi
unas sugernecias

si recibes los valores por un formulario, quizas sea mejor usar $_POST
y no $_REQUEST, de este modo tendrás mayor control de lo que pasa, bueno solo es una sugerencia. luego analicemos tu código

Código PHP:
Ver original
  1. <?php
  2. // Datos de la BD
  3. $conexion = mysql_connect("localhost" , "usuario" , "contrasenia");
  4. mysql_select_db("dbpruebas",$conexion);//aqui solo debes poner la tabla
  5.  
  6. $usuario = $_REQUEST['my_login'];//como dije mejor POST si es por un form
  7. $passwrd = $_REQUEST['my_pass'];
  8.  
  9. $sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";//en este caso usa la sintaxis de punto Ej 'BD.tabla'
  10. echo $sql;//aqui te falta algo asi $res = mysql_query($sql,$con);
  11. ?>
  12.  
  13. ahora veamos un ejemplo funcional
  14.  
  15. <?php
  16. $con = mysql_connect("localhost","user","contraseña");
  17. $bd = mysql_select_db("tabla") or die ("Verifique la Base de Datos");
  18. //conectamos y con die verificamos errores de conexion
  19.  
  20. $usuario = $_POST['my_login'];//como dije mejor POST si es por un form
  21. $passwrd = $_POST['my_pass'];
  22.  
  23. $sql = "INSERT INTO nom_bd.accounts (usuario, contrasenia) VALUES (".$usuario.", ".$passwrd.");";
  24. //nom_bd es el nombre de tu base de datos
  25. //no dejes espacios al concatenar
  26. //el punto y coma va hasta al final de la cadena no antes del parentesis
  27. $res = mysql_query($sql,$con); //realizamos la insercion
  28. //aunque deberia funcionar sin el $res XD
  29. mysql_query($sql,$con);
  30. // LISTO???
  31. ?>
Ya funcionó perfecto! Lo dejé como puse mas arriba y andubo de diez! Ahora, con respecto al $_REQUEST es porque en el script ya está implementado así y cumple bien su función por eso lo dejé asi y anda de diez!

Saludos!!
  #10 (permalink)  
Antiguo 02/10/2010, 18:26
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

DIOS hubo como 500 respuestas antes de que pudiera postear XD
  #11 (permalink)  
Antiguo 02/10/2010, 18:31
Avatar de Miguelithox  
Fecha de Ingreso: diciembre-2008
Ubicación: Viña del Mar
Mensajes: 287
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por memoadian Ver Mensaje
DIOS hubo como 500 respuestas antes de que pudiera postear XD
Jajaja, tienes que ser más rápido con los dedos en el teclado. xD
  #12 (permalink)  
Antiguo 02/10/2010, 18:32
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 15 años, 5 meses
Puntos: 641
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por Miguelithox Ver Mensaje
Jajaja, tienes que ser más rápido con los dedos en el teclado. xD
Nahh fui por unos nachos al refri XD
  #13 (permalink)  
Antiguo 02/10/2010, 20:15
Avatar de egepe  
Fecha de Ingreso: diciembre-2009
Mensajes: 310
Antigüedad: 15 años
Puntos: 7
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Para mi si no me perdí leyendo la respuesta de toda la gente es que tu insert tiene un "pto y coma " (;) que está mal ubicado

$sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";

Bueno de verdad q no sé si eso era lo que querías....
  #14 (permalink)  
Antiguo 03/10/2010, 15:24
Avatar de yak_vi  
Fecha de Ingreso: enero-2005
Ubicación: Argentina
Mensajes: 72
Antigüedad: 19 años, 10 meses
Puntos: 1
Respuesta: Problema ó Duda al insertar un registro en una BD MySQL (no hace nada)

Cita:
Iniciado por egepe Ver Mensaje
Para mi si no me perdí leyendo la respuesta de toda la gente es que tu insert tiene un "pto y coma " (;) que está mal ubicado

$sql = "INSERT INTO accounts (usuario, contrasenia) VALUES (" . $usuario . "," . $passwrd . ";)";

Bueno de verdad q no sé si eso era lo que querías....
Ya lo solucioné gracias por responder también!

Etiquetas: insertar, mysql, registro
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:42.