我无法弄清楚这种语法有什么问题:
$categorynameresult='SELECT DISTINCT cat_name FROM categories WHERE company = '$companyName' AND cid IN(\''.$categoryids.'\')';
我不断收到此错误消息:
解析错误:语法错误,...中的意外T_VARIABLE
我知道$ companyName和$ categoryids有我需要的值,但语法似乎有问题可能sombody请帮帮我?感谢
答案 0 :(得分:4)
您使用'$companyName'
周围的单引号提前关闭字符串,这就是PHP为您提供解析错误的原因。
您可以通过转义这些引号来解决此问题(就像您使用$companyids
一样),但是变量不会插入单引号字符串中。您不需要简单地转义单引号,而是需要在整个字符串周围使用双引号:
$categorynameresult="SELECT DISTINCT cat_name FROM categories WHERE company = '$companyName' AND cid IN($categoryids)";
这假设$categoryids
是逗号分隔的数字ID列表。
答案 1 :(得分:1)
$categorynameresult="SELECT DISTINCT cat_name FROM categories WHERE company = '$companyName' AND cid IN('$categoryids')";
答案 2 :(得分:0)
公司名称周围的单引号会导致语法错误,请尝试以下操作:
$categorynameresult='SELECT DISTINCT cat_name FROM categories WHERE company = \''.$companyName.'\' AND cid IN(\''.$categoryids.'\')';
答案 3 :(得分:0)
我认为你缺少连接运算符:
'SELECT DISTINCT cat_name FROM categories WHERE company = \'' . $companyName . '\' AND cid IN(\'' . $categoryids . '\')';
答案 4 :(得分:0)
您的查询包含在''
中,而查询中也会出现这些问题 - 或者至少尝试这样做。
此外,您忘记致电mysql_real_escape()
以逃避您的字符串以进入查询..