Pregunta

Estoy utilizando Zend_Gdata_SpreadsheetsListQuery. En PHP mi consulta es:

"confirmation=$confirmation"

El problema es que $confirmation = 'AB-CD-EFG-012345'; Al parecer, los guiones están causando problemas con la consulta y la excepción lanzada es:

  

Excepción no detectada 'Zend_Gdata_App_HttpException' con el mensaje 'código de respuesta esperada 200, consiguió 400   Error de análisis: no válida símbolo encontrado '

¿Cómo puedo citar o escapar el valor para no provocar errores de análisis? Las comillas simples hacen que el mismo error.

Edit: Cuando estaba probando con comillas dobles hubo un error del usuario. Las comillas dobles trabajo.

¿Fue útil?

Solución

Como resulta que tenía dos hojas de cálculo, uno para dev y uno para la producción y no se consulta de la que yo pensaba que era .. Esta solución funciona:

"confirmation=\"$confirmation\""

Otros consejos

Vale la pena señalar, que hay que tener cuidado con escapar. He intentado esto y no conseguir ninguna alegría. He intentado muchas combinaciones a lo largo de estas líneas:

$query->setSpreadsheetQuery("name=\"Andrew John\"");

pero en vano. Ejecución del tráfico a través de un inspector de HTTP (y la configuración de su Zend cliente HTTP para funcionar a través de un proxy es otra cosa que vale la pena mirar!) Pude ver que las URL generadas a partir de este trabajo con este aspecto:

http://spreadsheets.google.com:80/feeds/list/spreadsheetkey/od6/private/full?sq=name%3D%5C%22Andrew+John%5C%22

Esto se traduce en no válida Token (estado 400) errores. No fue así como el% 5C% 22 (\ ") la secuencia de escape, pero ¿dónde se reciba de?!

Resulta que hay una "parse_str" incrustado profundamente en código Zends, que fue agregando barras a la cadena de consulta porque por alguna razón (por defecto Ubuntu php config?) Magic_quotes_gpc fue activado en el archivo php.ini.

Al girar este fuera permitidos los URLs generados para volver a:

http://spreadsheets.google.com:80/feeds/list/spreadsheetkey/od6/private/full?sq=name%3D%22Andrew+John%22

y todo trabajo comenzó.

Por cierto, me Had que recurrir a la ejecución a través de un inspector de HTTP, porque hacerlo:

echo $query->getQueryUrl();

incorrectamente informó que estaba enviando la cadena anterior sin el 5C% antes de cada cita! Sólo va a mostrar, nunca paga a confiar en lo que dice el código ...

Por lo tanto, si usted tiene problemas con consultas estructuradas en clases gdata de Zend Framework y simplemente añadiendo comillas no lo resuelve para usted, echar un vistazo rápido para ver si tienes conjunto magic_quotes_gpc On!

Me han tratado de investigar la biblioteca Zend para esto, pero estoy teniendo ninguna alegría.

Podría ser algo tan simple como envolver el valor de apóstrofes?

Su código:

"confirmation=$confirmation"

código posible para la prueba:

"confirmation='$confirmation'"

Sólo una sugerencia al azar ...

Se puede usar urlencode . Sin embargo, yo esperaría que el API de Zend a mango que para usted, así que comprueba que se está usando correctamente.

mi solución:

obtener los registros que no coincidan exactamente con la consulta - por la columna que tampoco parece haber prohibido letras / signos. y en el script php Hacer filtro de las filas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top