0

エントリが入力フィールドのエドワード、ジョン、ジェイコブのようなものになると確信しているフィールドがあります。

今、私はそれぞれの人に新しい行を挿入しようとしています。私はこれをやっています:

$person = mysql_real_escape_string($_POST['person']);

foreach($person_array as $value) 
{ 
$insert = "INSERT INTO people (Person)
VALUES ('".$value."')";

$query = mysql_query($insert) or die ("Error: ".mysql_error()); 

} 

上記のクエリを使用すると、テーブルに挿入できません。私は何を間違っていますか?

4

4 に答える 4

3

$_POST['person'] が実際に「ジョン、エドワード、ジェイコブ」のような値である場合、それは単なる文字列です。爆発で配列に変換する必要があります。また、$POST ではなく $_POST にする必要があります。

$person = explode(',', $_POST['person']);

次に、 foreach 関数を実行できます。

于 2012-05-07T19:45:31.840 に答える
1

入力は次のようになります。<input type="text" name="person[]">

その場合はmysql_real_escape_string、アレイ上で実行しています。

これを試して:

$person = $POST['person'];
foreach($person as $value) {
    $value = mysql_real_escape_string($value);
    $insert = "INSERT INTO people (Person) VALUES ('$value')";
    $query = mysql_query($insert) or die("Error: ".mysql_error());
}
于 2012-05-07T19:46:30.697 に答える
1

DampeS8Nがコメントしたように、文字列を返しmysql_real_escape_stringます。には適用できませんArray

また、anuragbhはあなたのコードにタイプミスを見つけまし$_POST$POST

最後に、ループ内の特殊文字をエスケープしてみてください。

foreach($_POST['person'] as $value)
{
    $value = mysql_real_escape_string($value);
    //your query here
}
于 2012-05-07T19:48:40.790 に答える
0

あなたが得るエラーは何ですか?主キーは自動インクリメントされますか?

また:

$person = mysql_real_escape_string($POST['person']);

次のようにする必要があります。

$person = mysql_real_escape_string($_POST['person']);
于 2012-05-07T19:42:33.770 に答える