-1

以下のように、段落(中央に一重引用符が含まれる)をデータベースに挿入しようとしています。

$rule="**Mobile's** are not allowed into the room...................soon";


mysql_query("insert into table_name (rule) values('$rule')");

その段落が挿入されていないクエリの実行中。そして、SQLオプションを使用してMysqlで直接試しました。そこにエラーが表示されました。

助言がありますか..?

ありがとう

4

4 に答える 4

1

このようなことを処理する最善の方法は、PDO拡張機能またはMySQLi. を防ぐように設計されていSQL Injectionます。

使用例PDO

$rule = "**Mobile's** are not allowed into the room...................soon";
$stmt = $pdo->prepare("insert into table_name (rule) values(:rule)");
$stmt->execute(array(':rule' => $rule));

値に一重引用符が含まれている場合にクエリがどれほど悪いかを説明する、私が提供できる最良のリンク:

于 2013-05-09T13:03:48.950 に答える
1

あなたに考えさせるいくつかの質問:

  1. "PHP で二重引用符 ( ) は何を意味しますか?

  2. 変数を含む文字列への影響は何ですか?

  3. 「投入衛生」とは?

  4. 「キャラクターエスケープ」とは?

  5. PDOとは?

また、最も重要なことは次のとおりです。

mysql_*新しいコードで関数を使用しないでください。それらはもはや保守されておらず、公式に非推奨です赤いボックスがか? 代わりにプリペアド ステートメントについて学び、 PDOまたはMySQLiを使用してください。この記事はどちらを使用するかを決めるのに役立ちます。PDO を選択する場合は、ここに良いチュートリアルがあります。

于 2013-05-09T13:00:03.080 に答える
0

値を Mysql データベース テーブルに送信する前に mysql_real_escape_string() を使用できます。このリンクを確認してくださいhttp://php.net/manual/en/function.mysql-real-escape-string.php

$rule="**Mobile's** are not allowed into the room...................soon";
$rule1=mysql_real_escape_string($rule)
mysql_query("insert into table_name (rule) values('$rule1')");
于 2013-05-09T13:03:35.277 に答える
0

使用する

$rule = mysql_real_escape_string("**Mobile's** are not allowed into the room...................soon");
于 2013-05-09T12:58:40.743 に答える