TRes consejos:
1) NUNCA PONGAS ese "@" en las líneas. Oculta cualquier error o warning,
escondiendo información vital en la etapa de desarrollo. Es una pésima costumbre, además de innecesaria.
Si te molestan los mensajes de error y warning, es poque aún mo tienes práctica en que esos mensajes son total y absolutamente
necesarios para los programadores. Es la única forma de saber que se ha codificiado MAL algo.
2) Verifica siempre que las variables contienen lo que supones que contienen. Que algo esté bien escrito no implica que realmente esté funcionando bien. Son dos cosas diferentes.
El 99% de los fallos en las sentencias SQL creadas en PHP se originan en datos que no existen, o que se reciben mal.
3) Ten mucho cuidado con la construcción de una sentencia SQL. La sentencia debe estar bien creada para quel la base de datos la acepte. PHP no entiende SQL (y viceversa), por lo que jamás podrás analizar su corrección desde PHP.
En tu query hay un error básico: el campo
usuario se supone que es un VARCHAR, pero
no estás poniendo el resutlado de $usuario entre apostrofos, por lo que MySQL asumirá que el valor recibido es el nombre de una columna.
Supongamos que recibe esto:
Código SQL:
Ver originalINSERT INTO clientes(dni, nombre, direccion, usuario, password, email)
VALUES ('111111','alberto Fernandez','Calle X 1234 ', alberfer
, 'loqueseaPWD','[email protected]')
Está todo perfecto... excepto el usuario. Todo lo que no se pone entre apostrofos la base lo asume como nombre de un objeto de BBDD, sea columna, tabla, base, trigger, procedure, etc. Si no es nada de eso, entonces se generará un error de ejecución.
Pero como para colmo no estás verificando QUÉ error devuelve, no hay modo de que lo sepas.
Al menos deberías usar
mysql_error() para saberlo.
Código PHP:
<?php
$dni = $_GET['dni'];
$nombre = $_GET['nombre'];
$direccion = $_GET['direccion'];
$usuario = $_GET['usuario'];
$contrasena = $_GET['contrasena'];
$mail = $_GET['mail'];
$conexion = mysql_connect("localhost","root","") or die("Error al conectar");
$db = mysql_select_db("libros",$conexion) or die("Error al seleccionar DB");
$sql = "insert into clientes(dni, nombre, direccion, usuario, password, email)
values ('".$dni."','".$nombre."','".$direccion."','".$usuario."','".$contrasena."','".$mail."')";
mysql_query($sql,$conexion) or die("Error en la consulta: ".mysql_error());
?>