PHP - Error al insertar registros en Mysql

 
Vista:
sin imagen de perfil

Error al insertar registros en Mysql

Publicado por Mike (3 intervenciones) el 23/09/2017 05:53:52
Saludos Compañeros,

Estoy comenzando a programar en PHP 7.1, en la rutina de insertar datos, me genera el error y no me permite almacenar el registro, revise la conexiòn y esta funcionando perfecto, el problema es la sentencia de insertar que no anda.

El error es: mysqli_error() expects exactly 1 parameter, 0 given in

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
 
class CRUD
{
	private $servidor="localhost";
	private $usuario ="xxxxxxx";
	private $contrasena="";
	private $baseDeDatos="xxxxxx";
 
	private function ConectarBD()
	{
		$conexion= mysqli_connect($this->servidor,$this->usuario,$this->contrasena,$this->baseDeDatos) or die("No Hay Conexión con la Base de Datos");
		return $conexion;
	}
 
	private function CerrarConexion($conexion)
	{
		mysqli_close($conexion);
	}
 
	public function RegistrarProducto($objeto)
	{
 
		$conexion = $this->ConectarBD();
 
		$insertar = "INSERT INTO MaestroProducto VALUES('$objeto->IdProducto', '$objeto->DesProducto', '$objeto->UnidProducto', '$objeto->CostoProducto', '$objeto->PreProducto1', '$objeto->PreProducto2', '$objeto->PreProducto3')";
 
		mysqli_query($conexion, $insertar) or die("Error al Registrar el Producto");
 
		echo "Registro Agregado Correctamente";
 
		$this->CerrarConexion($conexion);
 
	}
}
 
class Objeto{}
 
?>

Y a través de esta línea hago el llamado:

1
$crud->RegistrarProducto($objeto);

También la cambie por esta, pero igual me da el error:

1
$insertar = "INSERT INTO MaestroProducto (IdProducto, Desproducto, UnidProducto, CostoPRoducto, PreProducto1, PreProducto2, PreProducto3) VALUES('$objeto->IdProducto', '$objeto->DesProducto', '$objeto->UnidProducto', '$objeto->CostoProducto', '$objeto->PreProducto1', '$objeto->PreProducto2', '$objeto->PreProducto3')";


Cualquiera que me pueda echar una mano, estaré agradecido-


Gracias de antemano...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al insertar registros en Mysql

Publicado por Gonzalo (615 intervenciones) el 23/09/2017 06:59:21
como declaraste las variables en $objeto?

si son privadas entonces ese es el problema.

en otro post deje una clase para manejar mysqli, te la recomiendo.

solo mandas el select con false y te pone el query tal como lo mandaste, ahi puedes ver como lo esta interpretando y tal vez te ayude a encontrar el problema.

activa los errores en php.ini, eso tambien te va a ayudar a encontrar los errores en el query.

salu2

lo malo de hablar en el idioma de los sordomudos es que al estar hablando ... todo mundo te escucha.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Error al insertar registros en Mysql

Publicado por Mike (3 intervenciones) el 23/09/2017 17:03:06
Buenos días,

Gracias por responder, la puse publica, y persiste el mismo error....

:(

Además de ello, me puedes dar el link del curso que dices.

Gracias de nuevo......
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al insertar registros en Mysql

Publicado por Gonzalo (615 intervenciones) el 23/09/2017 18:31:55
no es curso, es una clase que deje aqui mismo en el foro, busca mis publicaciones, la puse hace unos dias asi que debe ser de las ultimas.

intenta de este modo

1
2
3
4
5
6
7
8
9
10
11
12
13
$insertar =
"INSERT INTO MaestroProducto ".
"(IdProducto, Desproducto, UnidProducto, CostoPRoducto, PreProducto1, PreProducto2, PreProducto3)".
" VALUES ".
"(".
"'".$objeto->IdProducto."',".
"'".$objeto->DesProducto."',".
"'".$objeto->UnidProducto."',".
"'".$objeto->CostoProducto."',".
"'".$objeto->PreProducto1."',".
"'".$objeto->PreProducto2."',".
"'".$objeto->PreProducto3."'".
")";

es un poco mas laborioso pero asi nos aseguramos que la comilla sencilla no sea el problema.

recuerda activar los errores en php.ini, eso tambien ayuda.

revisa los nombres de las variales, tal vez alguna esta en mayusculas y debe ser en minusculas, recuerda que para PHP una variable $Hola es diferente de $hola y diferente de $hoLa, por ejemplo

tienes en elquery: CostoPRoducto y pudiera ser CostoProducto, lo marque en negritas.

revisa los valores en la tabla de la base de datos, tal vez tienes algun campo que no acepta alguna variable por ser de texto.

salu2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

Error al insertar registros en Mysql

Publicado por Mike (3 intervenciones) el 23/09/2017 18:45:18
Saludos de Nuevo,

Pues fijate que ya que me comentaste los registros en la tabla, había uno mal escrito, lo acomode y grabo sin problema.

Te comento que yo tengo más de 20 años programando en Visual Fox, alli, cuando hay un problema con una variable, genera el error, pero igual guarda el registro en los demás campos que no tenga problema, aqui veo que si hay un detalle en el campo, no graba el registro completo.

Parte del aprendizaje, gracias compañero.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 729
Bronce
Ha aumentado 1 puesto en PHP (en relación al último mes)
Gráfica de PHP

Error al insertar registros en Mysql

Publicado por Gonzalo (615 intervenciones) el 23/09/2017 18:55:35
orale, bienvenido.

puedes habilitar los errores agregando esta linea al inicio del script

error_reporting( E_ALL );

o directamente en php.ini, busca la lina que dice display_errors

display_errors = On

normalmente esta en off por eso no te muestra nada.

recuerda reiniciar el servidor de paginas para que active la opcion, o si le causa muchos problemas solo resetee la pc y listo.

en lo que podamos ayudarlo don Mike

salu2

si el numero PI (3.1416) esta en la gran piramide de keops en egipto, porque la hicieron cuadrada?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar