-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);

2行目を次のように置き換えると:

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

すべて正常に動作しますが、var1、2、3 を設定すると動作しなくなり、次のエラーがスローされます。

致命的なエラー: キャッチされない例外 'PDOException' とメッセージ 'SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。''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} が /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 に答える