[英]SQL syntax error only when executing a query in PHP
我相信PHP会有问题。 出现以下错误:
您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册以获取正确的语法,以在第2行的'SELECT @n:= @ n + 1作为count,interests.id,entity.id,entity.name'附近使用
如果我在MySql中执行以下查询,它将成功执行并返回所需结果。 但是,当我使用PHP执行相同的查询时,不会发生这种情况。
SET @n = 0 ;
SELECT @n := @n + 1 as count
, interests.id
, entity.id
, entity.name
, entity.entity_type
, entity.city_country_province
, entity.street_address
, entity.user_id
, entity.descript
, entity.icon
, city_country_province_type.city
, city_country_province_type.province
, city_country_province_type.country
, entity.linkout
, entity.map_lng
, entity.map_lat
FROM interests INNER JOIN interest_entity ON interests.id = interest_entity.interet_id
INNER JOIN entity ON interest_entity.entity_id = entity.id
INNER JOIN city_country_province_type ON entity.city_country_province = city_country_province_type.id
WHERE ((interests.id)=9)
GROUP BY interests.id
, entity.id
, entity.name
, entity.entity_type
, entity.city_country_province
, entity.street_address
, entity.user_id
, entity.descript
, entity.icon
, city_country_province_type.city
, city_country_province_type.province
, city_country_province_type.country
, entity.linkout
, entity.map_lng
, entity.map_lat
HAVING count >= 10 AND count <= 20 order by entity.name desc
趣味性:我正在使用的Web服务器不支持MySqli,因此我正在使用mysql_query()函数。 我怀疑这可能是问题的一部分。 但是,我使用MySql WAMP执行它以进行localhost测试,并收到相同的错误。
您不能在一个API调用中运行多个查询。
简单的解决方案:使用多个API调用。 一个是SET @n=0
,然后是一个单独的API调用以执行SELECT
查询。 只要你使用MySQL的同一个连接,价值@n
停留在会议活着。
mysqli扩展确实支持mysqli_multi_query()
但我仍然建议一次执行一个查询。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.