Problemas con bd y php

Leos

Hola buenas!

Tengo unos datos que cojo de unos inputs con javascript y debo introducirlos en la bd del server. Los envío mediante ajax al php que hace la conexión a la bd y que hace la sentencia sql para insertar los valores.

El problema es que el ajax envía bien los valores, el php los recibe bien, el php conecta bien a la bd pero no se insertan los valores en la bd, la sentencia sql la he probado en el phpmyadmin directamente y funciona, he mirado mil cosas pero no veo que es lo que me falla...

Dejo aquí el código a ver si alguien ve mi error:

<?php
$title=$_POST['enviotitle'];
$fecha=$_POST['enviofecha'];
$texto=$_POST['envioTexto'];
$nombre=$_POST['envioNombre'];

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // set the PDO error mode to exception
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $sql = "INSERT INTO updates (id, nombre_actualizacion, titulo, fecha, texto)
    VALUES (1, '$nombre', '$titulo', $fecha, '$texto')";
    // use exec() because no results are returned
    $conn->exec($sql);
    echo "New record created successfully";
    }
catch(PDOException $e)
    {
    echo $sql . "<br>" . $e->getMessage();
    }

$conn = null;
?>

Se que no estan puestas los valores de las variables de conexion pero en el codigo mio si que estan, ese no es el error.

Muchas gracias!

andoni013

el id siempre va a ser '1'?

1 respuesta
themaz

Si el id es auto incrementado, este no lo uses al insertar y la base de datos lo gestionará automáticamente.

Otra cosa, antes de insertar los valores del post intenta "sanearlos" y que estos sean lo que se espera... por ejemplo que un int sea un int y no un string.

2 respuestas
Leos

#2 No, eso lo he puesto para probar, no lo he puesto con autoincremento tampoco, aunque cuando consiga meter lo demás, seguramente lo pondré con autoincremento.

#3 No no esta con autoincremento, ahora pruebo lo de mirar que todo sea del tipo que toca a ver si es eso, aunque ayer creo que lo hice y tampoco, pero hice tantas cosas que ni se que probé jajajaja

catalon

#1 Que ta da el catch? que error sale?
Será porque nos has concatenado y escapado las variables?

Leos

Ya esta solucionado, estaba metiendo un int como un string jajajajaja

1 1 respuesta
Ranthas

#6 Para evitarlo en un futuro, sigue el consejo de #3; sanear los inputs que te llegan a la hora de construir sentencias SQL te va a ahorrar más de un disgusto xD

1
Merkury

#1 Usando PDO, en vez de hacer esas guarradas de queries, podrias usar el prepare() y tal...

1 respuesta
Leos

#8 Si si al principio lo tenia con un prepare pero como no me iba fui simplificando para encontrar el error. Gracias por el consejo igualmente!

Usuarios habituales

  • Leos
  • Merkury
  • Ranthas
  • catalon
  • themaz
  • andoni013