-1

我一直在盯着这段代码,我可以弄清楚为什么它不起作用。

$dbh = dbCon(); // CONNECT TO DATABASE THROUGH FUNCTION   
$sth = $dbh->prepare("SELECT * FROM ? WHERE ? = ?");    
$sth->execute(array($var1, $var2, $var3));    
$sth->fetch(PDO::FETCH_OBJ);

当我将第二行替换为:

$sth = $dbh->prepare("SELECT * FROM clientDetails WHERE clientID = 1");

一切正常,但是当我为它们设置 var1、2、3 时,它不想工作并引发以下错误:

致命错误:未捕获的异常 'PDOException' 带有消息 'SQLSTATE[42000]:语法错误或访问冲突:1064 您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在 /home/cms/functions/functions.php:142 中的 ''clientDetails' WHERE 'clientID' = '1'' at line 1' 附近使用正确的语法:142 堆栈跟踪: 0 /home/cms/functions/functions.php(142): PDOStatement->execute(Array) #1 /home/cms/functions/functions.php(470): returnData() #2 {main} 在 /home 中抛出/cms/functions/functions.php 在第 142 行

4

1 回答 1

0
$sth = $dbh->prepare("SELECT * FROM " + $var1 + " WHERE " + $var2 + " = ?");
$sth->execute(array($var3));
于 2013-03-06T07:39:21.970 回答