Tema: Post mysqli
Ver Mensaje Individual
  #12 (permalink)  
Antiguo 20/09/2013, 09:50
Mariuch
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Post mysqli

Cita:
Iniciado por yonerflash Ver Mensaje
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;
?>

Última edición por Mariuch; 20/09/2013 a las 10:00