sql >> データベース >  >> RDS >> Mysql

PreparedStatement:列名をパラメーターとして指定できますか?

    これは機能しません。 prepareステートメントはSQLを解析し、検証とコンパイルのためにデータベースに送信します。質問マークがSQLの一部に置き換わる可能性がある場合、バインドされた変数の全体的なポイント、つまり速度とセキュリティが失われます。 SQLインジェクションを再導入すると、すべてのパラメーターに対してステートメントを再コンパイルする必要があります。

    SELECT * FROM table WHERE c1 = ? OR c2 = ? OR c3 = ? より良くなります(もちろん、インデックスとテーブルサイズによって異なります)。



    1. mysqlでvarcharを日時形式に変換する方法

    2. Doctrine-プリペアドステートメントだけでなく、実際のSQLを出力する方法は?

    3. 私のお気に入りのPostgreSQL拡張機能-パート1-

    4. CodeIgniterでMySQLデータベースをバックアップする