%var附近的SQL语法错误

时间:2014-07-29 09:57:18

标签: php printf

解决

我在php文件中的查询中有一个小错误,我需要通过隐藏错误或修复错误来修复。我有这个:

$findgroup = sprintf('SELECT * 
        person.id as iden,
       IF (person.place = "", "A specified person was not found", person.place
       ) as person.place
       FROM person
       WHERE %s',
       $findgroup, $office);

虽然这段代码应该正常工作,但在页面中我看到一个错误"你的SQL语法有错误;查看与您的MySQL服务器版本相对应的手册,以获得在''附近使用的正确语法。在第7行(这是[其中s',])。

我的问题是如何隐藏该错误,因为查询仍在工作或如果可能的话如何修复它?希望代码足够。

2 个答案:

答案 0 :(得分:0)

一个问题是你将两个参数传递给sprintf,但只替换一个。

你只有一个%s,但有两个参数。此外,您应该确保传入的参数确实是一个字符串(%s)。

$findgroup = sprintf('SELECT * 
        person.id as iden,
       IF (person.place = "", "A specified person was not found", person.place
       ) as person.place
       FROM person
       WHERE %s',
       $office);

答案 1 :(得分:-1)

尝试

$findgroup = sprintf('SELECT * 
    person.id as iden,
   IF (person.place = "", "A specified person was not found", person.place
   ) as person.place
   FROM person
   WHERE "%s" ',
   $findgroup, $office);