Foros del Web » Programando para Internet » PHP »

insert

Estas en el tema de insert en el foro de PHP en Foros del Web. Estoy intentando añadir registros a una tabla a partir de un formulario y me da un error que no entiendo: Este es el código que ...
  #1 (permalink)  
Antiguo 04/08/2009, 15:49
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
insert

Estoy intentando añadir registros a una tabla a partir de un formulario y me da un error que no entiendo:

Este es el código que crea la base de datos y la tabla:

<?php
$link=mysql_connect("localhost","root","");
$c=mysql_query("create database turina",$link);
mysql_select_db(turina,$link);
mysql_query("create table alumnos(
matricula tinyint(5) unsigned zerofill auto_increment,
curso char,
letra char,
nombre varchar (20),
apellido1 varchar (20),
apellido2 varchar (20),
primary key (matricula)
)") or die (mysql_error($link));
?>

Este es el formulario:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>
<title>Añadir un alumno a la base de datos</title>
</head>
<body>
<form action = postfillalumnos.php method = POST>
nombre=<input type ="text" name="vnombre">
apellido1=<input type ="text" name="vapellido1">
apellido2=<input type ="text" name="vapellido2"><br><br>
<input type="submit" value="añadir">

</body>
</html>

Y este es el fichero que recibe los datos:

<?php
$vnombre=$_POST['vnombre'];
$vapellido1=$_POST['vapellido1'];
echo"El nombre es=$vnombre<br>";
echo"El apellido es=$vapellido1";
$link=mysql_connect("localhost","root","");
$c=mysql_select_db(turina,$link);
mysql_query ("insert into alumnos(nombre) values ($vnombre)",$link) or die(mysql_error($link));
?>

Este es el resultado después de poner en el formulario pepe como nombre y gamez como apellido1:

El nombre es=pepe
El apellido es=gamezUnknown column 'pepe' in 'field list'

No sé por qué identifica nombre con pepe si he puesto vnombre en lugar de nombre. No sé de donde viene ese error.
  #2 (permalink)  
Antiguo 04/08/2009, 16:11
Avatar de hgp147  
Fecha de Ingreso: diciembre-2006
Ubicación: Buenos Aires, Argentina
Mensajes: 980
Antigüedad: 17 años, 4 meses
Puntos: 36
Respuesta: insert

Te falta poner comillas en:


Código PHP:
mysql_query ("insert into alumnos(nombre) values ('$vnombre')",$link) or die(mysql_error($link)); 

Tene cuidado también con la inyección sql
__________________
Spread Firefox | Download Day 2008
¡Únete en nuestra misión para alcanzar el Record Guinness al software más descargado en 24 horas! http://www.spreadfirefox.com/es-ES/worldrecord/
  #3 (permalink)  
Antiguo 04/08/2009, 16:31
Avatar de PacoRuiz  
Fecha de Ingreso: abril-2009
Mensajes: 254
Antigüedad: 15 años
Puntos: 3
Respuesta: insert

Gracias,

He puesto las comillas que dices y el código funciona, pero no entiendo por qué me daba ese error. Decía que no existe la columna pepe en la tabla, y yo en ningún momento hacía referencia a la columna pepe.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:13.