1

Mysql テーブルがありcheckboxsavedます。checkedtypeという名前の列がありますvarchar(45)

この列の可能な値は、、Check1などCheck2です。

次に、jQuery でリクエストを送信し、値を GET 変数として渡します。例えば:

"http://xyz?checkbox=" + checkbox  // checkbox = Check1

PHPを使用して取得し$checkbox = $_GET['checkbox']、クエリを実行します。

$rv = mysql_query("insert into checkboxsaved (checked) values ('$checkbox')");

値は挿入されません。奇妙なことに、前にスペースやその他の文字を追加すると、たとえば

$rv = mysql_query("insert into checkboxsaved (checked) values (' $checkbox')"); // space
$rv = mysql_query("insert into checkboxsaved (checked) values ('r$checkbox')");

その後、値が挿入されます。なぜこれが起こっているのか誰にも教えてもらえますか?私によると、列が の場合、 のvarcharようなものを挿入できるはずですCheck1

4

1 に答える 1

0

衛生管理をお願いします。mysql_real_escape_string()ユーザーが入力したすべての値に対して実行する必要があります。また、あなたの場合、値に対して正規表現を実行して、一致するようにすることもできます/^Check[0-9]+$/

それでも問題が解決しない場合 (そしておそらく解決しない場合)、スクリプトはあなたが思っているようにデータを受け取っていない可能性があります。

すなわち。

$checkbox = mysql_real_escape_string($_GET['checkbox']);
$sql = "insert into checkboxsaved (checked) values ('$checkbox');";
//echo $sql; // uncomment this to debug
$rv = mysql_query($sql);
于 2012-11-17T02:17:42.927 に答える