Foros del Web » Programando para Internet » PHP »

No consigo que se inserte los datos en la base de datos

Estas en el tema de No consigo que se inserte los datos en la base de datos en el foro de PHP en Foros del Web. Desisto!!!! He mirado en mil sitios y probado mil cosas y no consigo que el dato se inserte en la tabla de la base de ...
  #1 (permalink)  
Antiguo 17/03/2009, 07:07
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
No consigo que se inserte los datos en la base de datos

Desisto!!!! He mirado en mil sitios y probado mil cosas y no consigo que el dato se inserte en la tabla de la base de datos.

Código PHP:
<?php
/*Cojo la variable de la URL*/
$nombre $_GET['nombre'];

/*Datos de conexión*/
$servidor  ="localhost"
$usuario   ="usuario"
$clave     ="clave";
$basedatos ="musica";
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error());
mysql_select_db($basedatos$conexion) or die(mysql_error());

/*Hago una select para comprobar que no corresponde con el último registro insertado*/
$resultsql mysql_query('SELECT titulo FROM temaseliminados ORDER BY id DESC LIMIT 1');
$nombrer=mysql_fetch_array($resultsql);

/*Comparación de valor pasado y valor de bbdd*/
if ($nombrer['titulo'] == $nombre){

/*Si coincide que es el último valor pasado (es que ya han avisado) y doy gracias*/
echo '<div id="navegacion"><p>"Muchas gracias."</p></div>';
}

/*Si no lo es*/
else{
/*Mando un email para informar (OK)*/
    
$cuerpo 'El tema '.$nombre.' ha sido eliminado.';
    
mail("[email protected]",'Tema '.$nombre.' eliminado',$cuerpo'From: [email protected]');
    echo 
'<div id="navegacion"><p>"Muchas gracias por informarnos."</p></div>';
    echo 
'INSERT INTO temaseliminados (titulo) VALUES ("'.$nombre.'")';
/*Meto el dato del tema en la tabla temaseliminados (o lo intento ;))*/
        
mysql_query("INSERT INTO temaseliminados (id ,titulo)VALUES (NULL , '".$nombre."')");
}
mysql_close($conexion);
?>
El problema está en:

Código PHP:
    mysql_query("INSERT INTO temaseliminados (id ,titulo)VALUES (NULL , '".$nombre."')"); 
También he probado:

Código PHP:
    mysql_query("INSERT INTO temaseliminados (titulo)VALUES ('".$nombre."')");

    
mysql_query("INSERT INTO temaseliminados (id ,titulo)VALUES (NULL , '$nombre')");

    
mysql_query('INSERT INTO temaseliminados (id ,titulo)VALUES (NULL , '.$nombre.')'); 
Estas consultan funcionan en phpmyadmin.

El id es auto_increment, por lo que no haría falta pasar dato.

¿Puede ser algún problema de configuración de PHP?

Lo de comprobar si es el último registro, es para que no me bombardeen con mil emails haciendo F5 (por ejemplo). Hay alguna manera de controlar la función mail para que no mande mails tan a la ligera?

Última edición por cluster28; 17/03/2009 a las 07:10 Razón: Insertar más información
  #2 (permalink)  
Antiguo 17/03/2009, 07:19
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: No consigo que se inserte los datos en la base de datos

¿Qué error te sale al ejecutar el comando?
  #3 (permalink)  
Antiguo 17/03/2009, 07:25
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: No consigo que se inserte los datos en la base de datos

Que tal!!!!!!!!

prueba con mysql_affected_rows, esta funcion devuelve el numero de filas afectadas por determinada sentencia sql, con base en lo que ella te regrese determinas donde esta el error.

Esta funcion retorna 1 si pudo ejecutar la sentencia de manera exitosa.

saludos
  #4 (permalink)  
Antiguo 17/03/2009, 07:30
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: No consigo que se inserte los datos en la base de datos

No da ningún error, y están habilitados porque he probado más cosas aparte de esto y no paraban de salir. Pero con estas INSERT´s, hago un 'echo' para ver qué consulta ejecuta y la copio y la pego en phpmyadmin y sí me inserta el dato.

Voy a probar mysql_affected_rows y os comento.

Gracias.
  #5 (permalink)  
Antiguo 17/03/2009, 07:35
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: No consigo que se inserte los datos en la base de datos

El resultado de mysql_affected_rows es -1, osea que falla.

Alguna otra idea?
  #6 (permalink)  
Antiguo 17/03/2009, 07:43
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: No consigo que se inserte los datos en la base de datos

Puede deberse a algún problema con la conexion con la bbdd ¿Puedes mostrar el script entero donde se realiza el insert?
  #7 (permalink)  
Antiguo 17/03/2009, 07:47
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: No consigo que se inserte los datos en la base de datos

Arriba está todo, pero en realidad sería esto sólo:

Código PHP:
$nombre $_GET['nombre'];
/*Datos de conexión*/
$servidor  ="localhost"
$usuario   ="usuario"
$clave     ="clave";
$basedatos ="musica";
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error());
mysql_select_db($basedatos$conexion) or die(mysql_error());
mysql_query("INSERT INTO temaseliminados (id ,titulo)VALUES (NULL , '".$nombre."')");
mysql_close($conexion);
?> 
De todos modos voy a probar este código sólo.
  #8 (permalink)  
Antiguo 17/03/2009, 08:01
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: No consigo que se inserte los datos en la base de datos

He probado:

Código PHP:
<?php
$nombre 
$_GET['nombre'];
/*Datos de conexión*/
$servidor  ="localhost"
$usuario   ="usuario"
$clave     ="clave";
$basedatos ="musica";
$conexion mysql_connect($servidor$usuario$clave) or die(mysql_error());

/*SELECT*/
mysql_select_db($basedatos$conexion) or die(mysql_error());
$resultsql mysql_query('SELECT titulo FROM temaseliminados ORDER BY id DESC LIMIT 1');
$nombrer=mysql_fetch_array($resultsql);
echo 
$nombrer['titulo'];

/*INSERT*/
echo "INSERT INTO temaseliminados (titulo) VALUES ('".$nombre."')";
mysql_query("INSERT INTO temaseliminados (titulo) VALUES ('".$nombre."')");
mysql_close($conexion);
?>
La SELECT recoge y muestra bien el resultado, pero la INSERT muestra una consulta que en phpmyadmin inserta bien el dato, pero PHP no lo hace.
  #9 (permalink)  
Antiguo 17/03/2009, 08:11
Avatar de juamd  
Fecha de Ingreso: marzo-2009
Ubicación: Bogotá
Mensajes: 285
Antigüedad: 15 años, 1 mes
Puntos: 8
Respuesta: No consigo que se inserte los datos en la base de datos

ya probaste de esta manera:

"INSERT INTO temaseliminados VALUES ('dato1','dato2')"

si se hace un insert como el anterior se deben indicar los valores para cada campo en la tabla.

"INSERT INTO temaseliminados (campo1,campo3) VALUES ('dato1','dato2')"

si se hace un insert como el anterior se puede especificar cuales campos agregar.


saludos
  #10 (permalink)  
Antiguo 17/03/2009, 08:27
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: No consigo que se inserte los datos en la base de datos

Vais a pensar que soy tonto pero ya está solucionado (a medias). Todo esto lo estaba probando en local con appserver, pero he subido los ficheros al hosting y ahí funciona OK.

Lo que no se todavía es por qué con appserver no va. ¿?
  #11 (permalink)  
Antiguo 17/03/2009, 09:14
 
Fecha de Ingreso: agosto-2008
Mensajes: 218
Antigüedad: 15 años, 8 meses
Puntos: 7
Respuesta: No consigo que se inserte los datos en la base de datos

Lo único que se me ocurre es que no tengas bien editados los privilegios para el usuario que utilizas en tu conexión a MySQL.

compruébalo en el phpmyadmin
  #12 (permalink)  
Antiguo 17/03/2009, 09:28
Avatar de cluster28  
Fecha de Ingreso: enero-2008
Ubicación: Donostia - San Sebastián
Mensajes: 756
Antigüedad: 16 años, 3 meses
Puntos: 32
Respuesta: No consigo que se inserte los datos en la base de datos

Efectivamente. Todo solucionado.

Gracias.
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 17:43.