2013-03-06 2 views
-1

나는이 코드를 영원히 꼼짝 않고 바라 보았고 왜 작동하지 않는지 알아낼 수 있습니다.PDOException 오류 1064

$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을 설정할 때 작동하지 않고 다음과 같은 오류가 발생합니다 :

Fatal error:Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''clientDetails' WHERE 'clientID' = '1'' at line 1' in /home/cms/functions/functions.php:142 Stack trace: 0 /home/cms/functions/functions.php(142): PDOStatement->execute(Array) #1 /home/cms/functions/functions.php(470): returnData() #2 {main} thrown in /home/cms/functions/functions.php on line 142

+0

대답은 태그 위키 http://stackoverflow.com/tags/pdo/info는 사용할 수 없습니다 –

답변

0
$sth = $dbh->prepare("SELECT * FROM " + $var1 + " WHERE " + $var2 + " = ?"); 
$sth->execute(array($var3)); 
+0

에? 테이블이나 필드의 이름은? –

+3

매개 변수는 값을위한 설계입니다. –

+1

대단히 감사합니다! –