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

PHP/MySQL挿入で一重引用符をエスケープしても機能しない

    一重引用符で文字列を挿入します(' )または二重引用符(" )mysql

    addslashes();を使用するだけです 挿入およびstripslashes(); データのフェッチ用。

    $str = "Hello Friend's.. Hows you all"s.";
    // Outputs: Hello Friend\'s..Hows you all\"s.
    echo addslashes($str);
    

    stripslashes — addslashes()で引用された引用符を外した文字列 。バックスラッシュが削除された文字列を返します。 (\' 'になります など。)二重の円記号(\\ )は単一の円記号になります(\

    $str = "Hello Friend\'s.. Hows you all"s."; // Outputs: Hello Friend's.. Hows you all"s.
    echo stripslashes($str);
    

    今、私たちは要点に到達します。次のように一重引用符または二重引用符でデータベースに文字列を挿入する場合:

    $str = “Hello Friend's.. Hows you all"s.”;
    $query = “INSERT INTO tbl (description) VALUES (‘$str’)”;
    

    これはエラーになりますが、addslashes($str)を使用すると 以下のように機能し、データベースに挿入すると、エラーは発生しません。

    $str = “Hello Friend's.. Hows you all"s.”;
    $desc_str = addslashes($str);
    $query = “INSERT INTO tbl (description) VALUES (‘$desc_str’)”;
    

    同様に、stripslashes($str)を使用できます そのテーブルフィールド値を次のように出力するには:

    echo stripslashes($str);
    


    1. 関係代数

    2. 宛先テーブルにIDを挿入したSQLBulkCopy

    3. Oracle-動的カーソルのLIKE句でバインド変数を使用

    4. SSISがOraOLEDB.Oracle.1プロバイダーと並行して実行されていない