为什么以下查询不起作用?PHP PDO查询疑难解答
$q=$conn->prepare("SELECT GUID FROM :table WHERE URL = :url AND Status = 1 LIMIT 0,1");
$q->execute(array(':table'=>'su_prm_'.$url_params['leading_url'],':url'=>$url_params['trailing_url']));
$r=$q->rowCount();
//returns 0, should return 1. Querying from the console (with quotes) returns 1.
我想也许有由此可变字符串没有被解析为字符串的问题,所以试图
$q->bindParam(1, 'su_prm_'.$url_params['leading_url'], PDO::PARAM_STR);
$q->bindParam(2, $url_params['trailing_url'], PDO::PARAM_STR);
还试图将这些变量到新的,独立的增值经销商($str = 'su_prm_'.$url_params['leading_url']
)和以这种方式运行查询。没有运气。我错过了什么?
编辑:顺便说一句,字符串是'流'和'一般'。没什么奇怪的......
由于这个'FROM:table'最有可能。我从来没有见过这种类型的查询,也许我还不知道。 –
所以占位符只是不会工作? – Eamonn
您将需要使用bindParam指定:table,而不是通过execute方法。这是相同的限制/按params排序:( – Gavin