ホームページ  >  記事  >  バックエンド開発  >  phpのPDOで二重引用符を使用して何かが行われているのですが、なぜこのステートメントが実行できるのでしょうか?

phpのPDOで二重引用符を使用して何かが行われているのですが、なぜこのステートメントが実行できるのでしょうか?

WBOY
WBOYオリジナル
2016-06-13 12:22:191060ブラウズ

PDO の二重引用符の処理はありますか? なぜこのステートメントは

で実行できるのでしょうか? この投稿は、2015-06-21 14:19:06 に pakey によって最終的に編集されました。データベースクラス medoo は良い感じですが、使用中に非常に奇妙な問題を発見しました
mysql を使用する場合、彼が組み立てた SQL テーブル名とフィールド名はすべて二重引用符で囲まれているため、生成されたステートメントを直接実行することはできません
mysql> SELECT * FROM "dd_xq_user_info" WHERE "uid" = '1' AND "status" = '1' ORDER BY "id" LIMIT 1;<br />ERROR 1064 (42000): 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 '"dd_xq_user_info" WHERE "uid" = '1' AND "status" = '1' ORDER BY "id" LIMIT 1' at line 1<br />

しかし、このステートメントを実行するために pdo を使用すると、エラーが発生せずに正常に実行されました。なぜこのようなことが起こったのかお伺いしてもよろしいでしょうか。 pdoはどのような処理を行ったのでしょうか?
------解決策----------------------
SQL_MODE のデフォルト値は STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER です,NO_ENGINE_SUBSTITUTION
ANSI_QUOTES に変更した後、他に操作がなければ当然影響はありません
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。