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

パラメータをバインドする場合、mysql_real_escape_stringを使用する必要がありますか?

    いいえ、自分で値をエスケープする必要はありません(つまり、mysqli_real_escape_stringを呼び出す必要はありません ) 、プリペアドステートメントを使用している場合:DBエンジンがそれを自動的に実行します。

    (実際、mysql_real_escape_stringを呼び出している場合 バインドされたパラメータを使用すると、文字列が2回エスケープされます。これは素晴らしいことではありません。結局、どこでも文字をエスケープすることになります...)


    補足として:値は整数として渡されます'ii'で示されます) ) 、したがって、mysql_real_escape_stringを呼び出す必要はありません。 、プリペアドステートメントを使用していなくても:その名前が示すように、この関数は...文字列をエスケープするために使用されます。

    整数の場合、私は通常、 intvalを使用します。 SQLクエリに挿入するデータが実際に整数であることを確認するため。

    (ただし、準備されたクエリを使用しているので、もう一度、そのようなエスケープを行う必要はありません)



    1. postgresでテーブル(インデックスを含む)をコピーします

    2. 日付形式ではないMySQLORDERBY日付フィールド

    3. データの削除/ロードスクリプトを実行する前に、Oracleデータベースをロックします

    4. 製品レビュー–MySQLのステラ修復