![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
27/07/2013, 17:06
|
![Avatar de KATHYU](http://static.forosdelweb.com/customavatars/avatar521914_3.gif) | | | Fecha de Ingreso: julio-2013
Mensajes: 547
Antigüedad: 11 años, 6 meses Puntos: 46 | |
Respuesta: Error con $_POST Cita:
Iniciado por Nemutagk Tienes que imprimir el error que envía mysqli para saber que esta mal...
Código PHP:
Ver original//tu código.... $ins = $mysqli->query("insert into productos (id,nombre,descripcion,rubro,proveedor,costo, pre_may,pre_det,activo,userid,fecha) values('','$n','$d','$r','$p','$c','$m','$dt','1','1')"); if ($ins){ Echo "Registro Agregado con exito !!"; } else{ echo "Error al Agregar".$mysqli->error."<br>"; } //mas código....
Por otro lado, desperdicias por completo mysqli al realizar las consultas como lo haces, ya que haces por completo inseguro tu sistema cuando mysqli implemente por default sistemas de segurida que evitar inyección SQL pero por la forma en que lo utilizas lo desperdicias, para eso existe el método prepare() y bind_param() para asignar variables externas a la sentencia SQL y evitar inyección SQL... Gracias averigue el uso de mysqli y he cambiado la consulta asi:
Código PHP:
Ver originalif ($_POST){ $n = $_POST['nombre']; $d = $_POST['desc']; $r = $_POST['rubro']; $p = $_POST['provee']; $c = $_POST['costo']; $m = $_POST['mayoreo']; $dt = $_POST['detalle']; $ins = $mysqli->prepare("insert into productos (nombre,descripcion,rubro,proveedor,costo,pre_may,pre_det) values(?,?,?,?,?,?,?,?)"); $ins->bind_param($n,$d,$r,$p,$c,$m,$dt); $ins->executed(); $ins->close(); if ($ins){ Echo "Registro Agregado con exito !!"; } else{ echo "Error al Agregar (".$mysqli->error.")<br>"; } }
El resultado es:
Código:
Fatal error: Call to a member function bind_param() on a non-object in C:\xampp\htdocs\OCHOA\pruebas\mantto.php on line 26
Donde 26 es la linea $ins->bind_param($n,$d,$r,$p,$c,$m,$dt);
Luego intente tomar los $_POST de un solo asi:
Código PHP:
Ver originalif ($_POST){ $ins = $mysqli->prepare("insert into productos (nombre,descripcion,rubro,proveedor,costo,pre_may,pre_det) values(?,?,?,?,?,?,?,?)"); $ins->bind_param( $_POST['nombre'], $d = $_POST['desc'], $r = $_POST['rubro'], $p = $_POST['provee'], $c = $_POST['costo'], $m = $_POST['mayoreo'], $dt = $_POST['detalle']); $ins->executed(); $ins->close(); if ($ins){ Echo "Registro Agregado con exito !!"; } else{ echo "Error al Agregar (".$mysqli->error.")<br>"; } }
El error es el mismo ahi donde dice bind_param da el error
__________________ Al contrario de lo que muchos podrían afirmar, ayudar no te hace pobre, sino más rico. |