PHP - Problemas con comillas en query

   
Vista:
Imágen de perfil de Alejandro

Problemas con comillas en query

Publicado por Alejandro (198 intervenciones) el 24/12/2015 19:43:08
Mi parte de codigo es esta
1
2
$query="INSERT INTO MSTFAC (DESCRIPCION)VALUES('$_POST[descripcion]')
$result=odbc_exec($link,$query)or die(exit("Error en odbc_exec"));

Funcionaba hasta que alguien me escribio en $_POST[descripcion] PANTALLA DE 42''... con dos comillas simples arrojándome el error: No coinciden los tipos de datos en la expresión de criterios.

Intente ponerle '{$_POST[descripcion]}' y no me funciono, intente reemplazar ' por \' y tampoco me funciono.

¿Alguna otra opción?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Diego

Problemas con comillas en query

Publicado por Diego (39 intervenciones) el 25/12/2015 10:03:31
Hola! Alejandro.
Podrias hacerlo de esta forma, si estas usando un formulario.

1
2
$query=(INSERT INTO MCFTA (DESCRIPTION) values (%s),
SQLValueString($_POST['descripcion'], "text"));

Supongo que el.problema es que no estas definiendo el tipo de valor, por lo que te da lio con las comillas.
No puedo escribir muy bien en el movil pero intentalo y nos comentas si te funciono.

Saludos!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro

Problemas con comillas en query

Publicado por Alejandro (198 intervenciones) el 28/12/2015 19:56:33
Obtuve -> Fatal error: Call to undefined function SQLValueString()

Lo he intentado de esta forma
1
$query  = "INSERT INTO MSTFAC (Descripcion) VALUES ('".SQLValueString($_POST['DESCRIP_1'], "text")."')";

No lo intente como lo pones pues son 110 campos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Alejandro

Problemas con comillas en query

Publicado por Alejandro (198 intervenciones) el 28/12/2015 20:26:17
Esto me funciono
1
$query ="INSERT INTO MSTFAC (Descripcion) VALUES ('".str_replace("'","''",$_POST[DESCRIPT_1])."')";
el problema luego fue que en el DBF me guarda PANTALLA DE 42\'\'

Decidí quitarme de líos y lo reemplace por comillas dobles
1
$query ="INSERT INTO MSTFAC (Descripcion) VALUES ('".str_replace("\'\'",'"',$_POST[DESCRIPT_1])."')";
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar