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

'(アポストロフィ)や(引用符)などの特殊文字を含むMysql + php

    SQL文字列は次のようになります:

    INSERT INTO `table` (`row1`) VALUES ('google's site')
    

    これは有効なステートメントではありません。 Nanneが書いたように、少なくともmysql_real_escape_stringで文字列をエスケープします: http ://php.net/manual/en/function.mysql-real-escape-string.php

    そして、SQLインジェクションについて読んでください http://en.wikipedia.org/wiki/SQL_injection

    少し考えてみてください。誰かがこれを投稿した場合:$_POST['text'] 値:');delete from table;....

    データに別れを告げることができます:)

    常に入力をフィルタリング/エスケープしてください!

    編集:PHP 5.5.0以降、mysql_real_escape_stringおよびmysql拡張機能は非推奨になりました。代わりにmysqli拡張機能とmysqli::escape_string関数を使用してください



    1. 手順でテーブルを作成する

    2. 特別なものを除いて、null値を他のすべての後に並べ替える

    3. PHP-MYSQL-データベースサーバーのテスト

    4. 実行したばかりのmysqlステートメントを元に戻すにはどうすればよいですか?