PHPドキュメントPDOによる::準備()すべてのパラメータに引用符を追加します。はPDOによって追加の引用符の扱い::(準備)
"プリペアドステートメントのパラメータはクォートする必要はなく、ドライバは自動的にこれを処理します。アプリケーションがプリペアドステートメントを排他的に使用する場合、開発者はSQLインジェクションが発生しないことを確認できます(ただし、エスケープされていない入力でビルドされても、SQLインジェクションは可能です)。
この問題は、私のクエリとデータベース構造を構築する方法です。通常、SQL文のFROM部分は、おそらく直接ユーザー入力によって定義されるため、パラメータ化する必要はありません。しかし、私のコードでは、いくつかの場所で大文字と小文字が区別されるので、パラメータ化されたバージョンではより快適になります。テーブル名FROM SELECT *とは対照的に、
SELECT * FROM ? WHERE ?=?
WHERE?=?
私の質問は、これは私の顔にスローされたSQLエラーを取得しないように私のPDOオブジェクトがFROMパラメータの周りに引用符を追加するのを防ぐことは可能ですか?それとも別のやり方でこれをしなければならないのですか?
正確に何が問題なのですか? – jeroen
必ずしも引用符を付けるわけではありません。ネイティブのプリペアドステートメントをサポートするドライバはリテラル '?'を保持し、データベースサーバはその置換を行います。 - しかし、具体的にあなたのコードが何をしているのか、なぜそれが問題なのかを説明する必要があります。あなたのFROM句に ''?''や ':placeholder''を加えることは、文字列であり、束縛されたパラメータではありません。 – mario
ご迷惑をおかけして申し訳ありませんが、入力を終了する前に私は間違って入力しました – hamalnamal