- 私はINSERT文とSELECT FROM文の両方で本当のエスケープを使用する必要がありますか?
私が次の例で使用している構文が機能していないのはなぜですか(これは私が試した多くの方法の1つです)。mysql_real_escape_string()は何もエスケープしていません
//insert user input for word 1 $sql = "INSERT INTO test (Word1, Word2, Word3, Word4, Word5) VALUES('$Word1','$Word2','$Word3','$Word4','$Word5')", mysql_real_escape_string($Word1), mysql_real_escape_string($Word2), mysql_real_escape_string($Word3), mysql_real_escape_string($Word4), mysql_real_escape_string($Word5); if(!mysql_query($sql,$con)) { die('Error: ' . mysql_error()); }
0
A
答えて
1
、およびにmysqli::prepareで、おそらくPDOで移動します。それは最終的にはより簡単で安全です。
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
$sql =
'INSERT INTO mytable ' .
'(Word1, Word2, Word3, Word4, Word5)' .
'VALUES(?, ?, ?, ?, ?)';
$stmt = $dbh->prepare($sql);
$words = array('word1', 'word2', 'word3', 'word4', 'word5');
$stmt->execute($words);
$words = array('word6', 'word7', 'word8', 'word9', 'word10');
$stmt->execute($words);
4
それはあなたがあなたのコードを少し再フォーマットする必要がありますので、適切に行うには、sprintf()を使用しようとしているように見える:私は非常にあなたが完全にエスケープを避けることをお勧めします
$sql = sprintf("INSERT INTO test (Word1, Word2, Word3, Word4, Word5)
VALUES('%s','%s','%s','%s','%s')",
mysql_real_escape_string($Word1),
mysql_real_escape_string($Word2),
mysql_real_escape_string($Word3),
mysql_real_escape_string($Word4),
mysql_real_escape_string($Word5)
);
関連する問題
- 1. データベースに接続していてもmysql_real_escape_string()が動作しません
- 2. TextChangedListenerは何もしていません
- 3. Onclickは何もしていません
- 4. mysql_real_escape_stringがエスケープ文字を配置していない
- 5. Railsの値をエスケープする(mysql_real_escape_string()と似ています)
- 6. $ .isNumeric何もしていません
- 7. PayPal IPN何もしていません
- 8. MSYS make.exeコマンドは何もしません( "何もしない...")
- 9. ontouchは何もしませんAction_upで何もしない
- 10. PHP PEARのエスケープ()対見積もり()対mysql_real_escape_string()?
- 11. mysql_real_escape_stringが動作しません
- 12. Supervisordは何もしません...何もロード/開始できません
- 13. Android SubMenusはクリックしても何もしません
- 14. jspdfダウンロードボタンはクリックしても何もしません。 android cordovaで
- 15. RavenDBは "Add Reduce"ボタンをクリックしても何もしません
- 16. asp.net mvcは何回もループした後、何もしません。
- 17. mysql_real_escape_stringが適用されません
- 18. プロンプトが表示されてもプログラムは何もしません
- 19. onkeyupとonkeydownは何もキャッチしていません
- 20. UIScrollView scrollRectToVisibleは何もしていません
- 21. navbarは何も表示していません
- 22. 私のlocalStorageは何も保存していません
- 23. コード化されたUIテストは何もしていません
- 24. ng-repeatは何も表示していません
- 25. .encode( 'utf-8')は何もしていません
- 26. 文字カウントプログラムは何も出力していませんか?
- 27. OpenGL + GLU + C++は何も描画していません
- 28. 私のPythonコードは何も出力していませんか?
- 29. Debug.Writelineは何も印刷していません
- 30. WPLMS:Wordpress Visual editiorは何も変更していません
%sの意義は何ですか? – Bodhidarma
これはphpフォーマット文字列のデータ型指定子です。php.net/sprintfに行くと、使用可能なさまざまな型指定子が詳細に表示されます – Patrick