Partiendo de esta consulta:
Código PHP:
"INSERT INTO cliente ($campos) VALUES ('$nombre', '$nif', $fecha_alta, '$direccion', $telefono, $fax, '$nombre_comercial', '$contacto', '$correo', '$correo_admin', $codigo_postal, '$poblacion', '$provincia', '$comunidad', '$pais', $id_codigo_pais, $id_usuario, $id_estado)"
Código SQL:
Ver original
INSERT INTO cliente (nombre, nif, fecha_alta, direccion, telefono, fax, nombre_comercial, contacto, correo, correo_administracion, codigo_postal, poblacion, provincia, comunidad, pais, id_codigo_pais, id_usuario, id_estado) VALUES ('prueba', '7668496', 2012-11-28, 'marques de quintanar', 986356659, 986724565, '', 'prueba', '[email protected]', '', , '', '', '', '', , 2, 1)
Me da error:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' '', '', '', '', , 2, 1)' at line 159
No se pueden poner los campos como '' ? Que tendría que hacer? que si son '' ponerlos como NULL sin comillas?
EDIT: acabo de descubrir el error. Si el campo es INT no le estoy poniendo evidentemente. Así que si falta un campo INT en lugar de '' no aparece nada, quedaría algo así:
'campo de ejemplo', , 'El int sería el anterior', ''
Sólo se me ocurre esta solución y no se si hay alguna mejor:
En plan
Código PHP:
Ver original
$columnas = $nombre; //este siempre va a ir, es obligatorio $campos = $nombre; if ($nif!='') { $columnas+=", nif"; $campos+=", $nif"; }
Y luego
Código PHP:
Ver original
INSERT INTO cliente ($columnas) VALUES($campos);
No se si me explico.