Cita:
Iniciado por yonerflash No muestra mensajes de error, pero en la base de datos no graba nada
$bd = new mysqli("localhost", "root", "00127", "bd_personas");
if ($bd->connect_errno)
die("Error, no se pudo conectar: ".$bd->connect_error);
if ( ! empty($_POST)) {
$documento = ($_POST["docDeIdentidad"]);
$documento = (int)$documento;
$documento = var_dump($documento);
$nombres = var_dump($_POST["nombres"]);
$apellidos = var_dump($_POST["apellidos"]);
}
$query = "INSERT INTO tbl_personas VALUES ('$documento', '$nombres', '$apellidos')";
$bd->query($query);
echo "Nuevo registro \n";
$bd->close();
var_dump vuelca el contenido de una variable, se utiliza generalmente para visualizar la información pero nunca para asignar contenido. Le estás pasando valores incorrectos a tu DB y por eso nunca te hace las inserciones. Otra cosa es que estás ingresando el $_POST['variable'] dentro de paréntesis. Por qué?
Y además hay un error en la consulta ya que estás poniendo las variables donde debería ir el nombre de los campos y nunca le asignas el valor a esos campos tampoco, y por último el VALUES va después de indicar los nombres de los campos y no antes.
Te recomiendo que chequees el contenido de cada uno de los valores que estás tomando con la función isset en lugar de hacer un genérico de $_POST, ya que si llega cualquier información en uno de los campos pero no en los otros, tu if lo tomaría como válido. Acá te paso cómo debería estar el código:
Código PHP:
<?php
$bd = new mysqli("localhost", "root", "00127", "bd_personas");
if ($bd->connect_errno)
die("Error, no se pudo conectar: ".$bd->connect_error);
$documento = ( isset( $_POST[ "docDeIdentidad" ] ) ) ? $_POST[ "docDeIdentidad" ] : false;
$nombres = ( isset( $_POST[ "nombres" ] ) ) ? $_POST[ "nombres" ] : false;
$apellidos = ( isset( $_POST[ "apellidos" ] ) ) ? $_POST[ "apellidos" ] : false;
$query = "INSERT INTO tbl_personas (DOCUMENTO, NOMBRE, APELLIDO) VALUES "; // Acá va el nombre de las columnas y no el contenido en sí
$query .= "( '$documento', '$nombres', '$apellidos' )"; // Recién acá asignas los valores que corresponden (lo hice en dos veces para comentarlo, vos lo podés hacer de una sola vez ^^ )
$bd->query($query);
echo "Nuevo registro \n";
$bd->close();
?>
Una recomendación cuando quieras ver por qué no se graba nada en la base de datos! Después de generar tu query hacé simplemente un echo del mismo a ver qué está guardando:
Código PHP:
<?php
$query = "INSERT INTO tbl_personas (DOCUMENTO, NOMBRE, APELLIDO)VALUES ( '$documento', '$nombres', '$apellidos' )";
echo $query;
?>