2

PDO を使用して準備済みステートメントを実行しようとしていますが、同様のステートメントが他のファイルで正常に実行されるという事実にもかかわらず、エラーが発生し続けます。

私が受け取ったエラーは次のとおりです: `Array ( [0] => 42000 [1] => 1064 [2] => SQL 構文にエラーがあります。正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。行 1 の「merch」の近くで使用するには ) 1

コードの短縮版は次のとおりです。

class Ben { 

    protected $_BTH;
    protected $_BTH;

    function __construct() {
        $this->_BBH = (---new PDO object---)
        $this->_BTH = $this->_BBH->prepare("SELECT * FROM :table");
    }
    my_function($table) {
        $this->_BTH->bindParam(':table', $table, PDO::PARAM_STR); // table == merch
        $this->_BTH->debugDumpParams(); // outputs SQL: [20] SELECT * FROM :table Params: 1 Key: Name: [6] :table paramno=-1 name=[6] ":table" is_param=1 param_type=2
        $execResult = $this->_BTH->execute();

        if ($execResult == false) {
            die(print_r($this->_BTH->errorInfo())); // prints out the error I wrote earlier
        }
    }
}

構文エラーの場所がわかりません。何かキーワードを使用していますか? ご協力いただきありがとうございます :)

4

1 に答える 1

2

テーブル名はご用意できません。また、すべきではありません。テーブルの名前が何らかの形でユーザー入力に由来する場合は、おそらくデータベース構造を再考する必要があります。

于 2012-07-04T21:11:22.997 に答える