PHP y MySql, error cuando pongo en la SQL un valor de tipo texto entre comillas
Publicado por jach (3 intervenciones) el 01/12/2019 00:46:29
Hola.
Tengo instalado PHP 7.3 y MySQL 5.5 en Windows 10.
Estoy haciendo una pequeña página web personal y cada vez que intento
ejecutar una instrucción SQL generada desde mi script php, me da error.
Cada vez que la instrucción que genero contiene un valor de texto, puesto
entre comillas (dobles o simples, da igual), en la instrucción sql, da el mismo error.
He probado y me da el error, por ejemplo en las clausulas WHERE de una
instrucción de tipo SELECT, lo mismo en un instrucción de
tipo INSERT, siempre me señala en mismo error en el primer valor
que ponga de tipo texto, que, por supuesto, va entre comillas.
El error que me reporta siempre es el mismo:
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 '<parte_de_sql>', at line 1
donde <parte_de_sql> es la parte de la isntrucción SQL donde comienza el primer valor que ponga entre comillas.
Por ejemplo (real):
INSERT INTO `users` VALUES (1, '[email protected]', 'd41d8cd98f00b204e9800998ecf8427e', '1', '', '', '', '', '')
Error devuelto:
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 '\'[email protected]\', \'d41d8cd98f00b204e9800998ecf8427e\', \'1\', \'\', \'\', \'\', \'\', \'\')' at line 1
Ah, si es un campo numerico y lo pongo sin las comillas, no da error, si lo
pongo entre comillas, ahi va el error.
Sin embargo, si hago un echo al navegador de la instrucción sql generada,
la copio y la pego, por ejemplo en otro software de menejo de mi DB,
por ejemplo, Navicat, la instrucción se ejecuta sin ningun problema y
da el resultado esperado por mi.
Alguien puede darme alguna sugerencia.
Saludos a todos,
jach
Tengo instalado PHP 7.3 y MySQL 5.5 en Windows 10.
Estoy haciendo una pequeña página web personal y cada vez que intento
ejecutar una instrucción SQL generada desde mi script php, me da error.
Cada vez que la instrucción que genero contiene un valor de texto, puesto
entre comillas (dobles o simples, da igual), en la instrucción sql, da el mismo error.
He probado y me da el error, por ejemplo en las clausulas WHERE de una
instrucción de tipo SELECT, lo mismo en un instrucción de
tipo INSERT, siempre me señala en mismo error en el primer valor
que ponga de tipo texto, que, por supuesto, va entre comillas.
El error que me reporta siempre es el mismo:
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 '<parte_de_sql>', at line 1
donde <parte_de_sql> es la parte de la isntrucción SQL donde comienza el primer valor que ponga entre comillas.
Por ejemplo (real):
INSERT INTO `users` VALUES (1, '[email protected]', 'd41d8cd98f00b204e9800998ecf8427e', '1', '', '', '', '', '')
Error devuelto:
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 '\'[email protected]\', \'d41d8cd98f00b204e9800998ecf8427e\', \'1\', \'\', \'\', \'\', \'\', \'\')' at line 1
Ah, si es un campo numerico y lo pongo sin las comillas, no da error, si lo
pongo entre comillas, ahi va el error.
Sin embargo, si hago un echo al navegador de la instrucción sql generada,
la copio y la pego, por ejemplo en otro software de menejo de mi DB,
por ejemplo, Navicat, la instrucción se ejecuta sin ningun problema y
da el resultado esperado por mi.
Alguien puede darme alguna sugerencia.
Saludos a todos,
jach
Valora esta pregunta


0