PHP - No me insertar los registros con PDO

 
Vista:
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

No me insertar los registros con PDO

Publicado por Pepe (8 intervenciones) el 30/01/2018 12:40:06
Hola a todos. Estoy haciendo el curso de PHP de PildorasInfromaticas (excelente!) y voy en el vídeo 56 donde se intenta insertar registros en una tabla ( pedidos) qie está en una BD ( pruebas) en local. El asunto es que utilizo el formulario:
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
<form action="insertar_registros_PDO.php" method="post">
    <table><tr>
      <td>
        C. Artículo</td><td><input type="text" name="c_art" id="c_art"></td></tr>
       <tr>
         <td> Sección </td><td><input type="text" name="seccion" id="seccion"></td></tr>
       <tr>
         <td>Nombre Art</td>
         <td><input type="text" name="n_art" id="n_art"></td>
       </tr>
       <tr>
         <td>Precio</td>
         <td><input type="text" name="precio" id="precio"></td>
       </tr>
       <tr>
         <td>Fecha </td>
         <td><input type="text" name="fecha" id="fecha"></td>
       </tr>
       <tr>
         <td>Importado</td>
         <td><input type="text" name="importado" id="importado"></td>
       </tr>
       <tr>
         <td>País de Origen</td>
         <td><input type="text" name="p_orig" id="p_orig"></td>
       </tr>
       <tr><td colspan="2"> <input type="submit" name="enviando" value="¡Dale!">
    </td></tr></table>
</form>

enlazo el formulario anterior con el archivo de inserción de nombre "insertar_registros_PDO.php" que sigue

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
$busqueda_cart=$_POST['c_art'];
$busqueda_secc=$_POST['seccion'];
$busqueda_nart=$_POST['n_art'];
$busqueda_precio=$_POST['precio'];
$busqueda_fecha=$_POST['fecha'];
$busqueda_impor=$_POST['importado'];
$busqueda_porig=$_POST['p_orig'];
 
 
try{
 
	$base=new PDO('mysql:host=localhost; dbname=pruebas', 'root', '');
 
	$base->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 	// Esta es la orden no explicada		
 
	$base->exec("SET CHARACTER SET utf8");
 
 
 
 
	$sql="INSERT INTO pruebas.productos (CÓDIGOARTÍCULO,SECCIÓN,NOMBREARTÍCULO,PRECIO,FECHA,IMPORTADO,PAÍSDEORIGEN) VALUES (:c_art,:seccion,:n_art, :precio,:fecha,:importado,:p_orig)";
 
	$resultado=$base->PREPARE($sql);
 
 
	$resultado->execute(array(":c_art"=>$busqueda_cart, ":seccion"=>$busqueda_secc, ":n_art"=>$busqueda_nart, ":precio"=>$busqueda_precio,":fecha"=>$busqueda_fecha, ":importado"=>$busqueda_impor, ":p_orig"=>$busqueda_porig));
 
	echo "Registro insertado" ;
 
} CATCH (EXCEPTION $e){
 
	echo "Código de error ".$e-> getCode();
} finally{
 
	$base=NULL;
 
}
?>

y al rellenar el formulario me da los siguientes errores en todas las variables que he definido



********************************************************
Notice: Undefined index: c_art in C:\xampp\htdocs\PildorasInformaticas\insertar_registros_PDO.php on line 11

Notice: Undefined index: seccion in C:\xampp\htdocs\PildorasInformaticas\insertar_registros_PDO.php on line 12

Notice: Undefined index: n_art in C:\xampp\htdocs\PildorasInformaticas\insertar_registros_PDO.php on line 13

Notice: Undefined index: precio in C:\xampp\htdocs\PildorasInformaticas\insertar_registros_PDO.php on line 14

Notice: Undefined index: fecha in C:\xampp\htdocs\PildorasInformaticas\insertar_registros_PDO.php on line 15

Notice: Undefined index: importado in C:\xampp\htdocs\PildorasInformaticas\insertar_registros_PDO.php on line 16

Notice: Undefined index: p_orig in C:\xampp\htdocs\PildorasInformaticas\insertar_registros_PDO.php on line 17
Registro insertado

*******************************************************************

Alguien me puede echar una mano? Estoy atascadísimo.... Gracias mil
</body>
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
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

No me insertar los registros con PDO

Publicado por xve (6935 intervenciones) el 30/01/2018 16:31:09
El código esta todo correctamente!!! cuando envies el formulario, no tendria que aparecerte este mensaje de error... ya que los nombres existen...
lo que dice, error en la linea 11, entiendo que hay código que no nos has añadido? porque la captura de las variables esta en el linea 2 adelante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

No me insertar los registros con PDO

Publicado por Pepe (8 intervenciones) el 30/01/2018 17:16:29
En efecto, había dejado de mandar todos los encabezamientos pero no me he dado cuenta que esa, claro, inutilizaba la linea del error. Muchas gracias por tu respuesta. Saludos
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: 29
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

No me insertar los registros con PDO

Publicado por Sergio (21 intervenciones) el 30/01/2018 17:11:33
De todas formas es un warning, no un error. Prueba a poner post en mayusculas para que el método esté correctamente llamado. Juega con

1
2
error_reporting(E_ALL);
ini_set('display_errors', '1');

como dice xve el código parece correcto, salvo que falte algo que no vemos.

Un saludo.
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
Val: 16
Ha aumentado su posición en 9 puestos en PHP (en relación al último mes)
Gráfica de PHP

No me insertar los registros con PDO

Publicado por Pepe (8 intervenciones) el 30/01/2018 17:17:40
Muchísimas gracias. Con lo que me decis los dos y enredando... ya me funciona. Bravo! Saludos
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