Cita:
Iniciado por Gloton Tu codigo para solucionar el problema es
Código PHP:
$nombre = 'NULL';
$sql = "INSERT INTO mitabla values ($nombre)";
Mira, cambia lo que tienes entre comillas por el nombre
Código PHP:
Ver original$nombre = 'gloton';
$sql = "INSERT INTO mitabla values ($nombre)";
Quedaria
y no se guardaria en mysql
Vamos a hacer una aclaración que ya deberías conocer: MySQL No es PHP, y PHP no es MySQL.
MySQL
no entiende las variables de PHP, sencillamente porque jamás "dialogan" entre sí. Lo que hace PHP con las librerías es poner en un puerto determinado (3306 usualmente), un mensaje que MySQL "escucha". Ese mensaje es SQL
puro.
MySQL luego devuelve en ese mismo puerto un conjunto de datos formateados como arrays que la librería de PHP interpreta para manipularlos. Pero jamás hay interacción directa entre ambas cosas.
¿Qué significa todo esto?
Que lo que haces en PHP es crear SQL, sólo SQL y nada más que SQL. Por consecuencia, las variables de PHP no existen para MySQL, sino que su
contenido se toma para crear esa sentencia, y por consecuencia, la sentencia
debe respetar la sintaxis de SQL.
Esto último, entre otras consideraciones: implica que:
- Las cadenas de texto deben estar entre apóstrofes.
- los números no deben estar entre apóstrofes (no son cadenas de texto)
- Los decimales se representan con puntos.
- Las fechas y horas se ponen entre apostrofos, respetando el formato de fechas y horas de MySQL.
- Las cláusulas de las sentencias no deben estar entre apóstrofes ni comillas.
- Los nombres de tablas pueden estar entre acentos agudos.
- Los operadores de todo tipo van
sin apostrofos, comillas o acentos agudos.
Y en este último sentido, NULL, NOT, IN, AND, OR, etc., deben estar en la sentencia
sin apostrofos .
¿Se entiende?
Estás embebiendo SQL en PHP, pero el SQL tiene sus propias reglas que debes cumplir si quieres que las sentencias se ejecuten sin errores.