phpmyadminでは、SQLを介してこれを実行できます。
SELECT * FROM mytable WHERE `Bob's Stuff` > 1
しかし、まったく同じクエリを実行すると、phpスクリプトは次のようになります。
$stmt->prepare("SELECT * FROM mytable WHERE `Bob's Stuff` > :int");
$stmt->bindValue(':int', $int);
$stmt->execute();
このエラーが発生します:
致命的なエラー:キャッチされない例外'PDOException'とメッセージ'SQLSTATE [42000]:構文エラーまたはアクセス違反:1064SQL構文にエラーがあります。script.php:208の10行目で':int AND
Bob's Stuff
> ='1')'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。スタックトレース:#0 script.php(208): PDOStatement-> execute()#1{main}が208行目のscript.phpにスローされます
クエリ列を他の列名に変更すると、クエリは正常に機能します。
アポストロフィを使用して列名を付けることはできますか?