0

私は現在、mysql / phpを介してフォームを作成しています。一意の値を持つ 1500 をはるかに超える入力があり、それらを mysql テーブルに挿入したいと考えています (1 つの値/行)

私はこの方法でフォームを作成しています:

echo "<input type='text' name='combination[]' value='justsometext". $row['name'] ."'><br />";

このような約 1500 の入力があり、それらを 1 つの列に挿入したいのですが、どうすればよいですか?

次のコードを使用して挿入していますが、実際の値ではなく 0 のみを挿入しています。

foreach ($_POST['combination'] as $combination) {
$sql="INSERT INTO alphabet_combination (combination)
VALUES
('$combination')";
}
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
4

2 に答える 2

1

まず第一に、PHP で SQL インジェクションを防ぐにはどうすればよいですか?

2番目: 1500入力? うわー...php.ini構成がそれを処理するかどうかを再確認する必要があります。

本当に 1500 個の値を 1 つの列に入れたい場合は、serialize配列してそのままにしておくことを検討する必要がありますか?

準備されたステートメントでは、これは次のようになります。

$combinations = serialize($_POST['combination']);

$q = mysqli_prepare($con, 'INSERT INTO alphabet_combination (combination) VALUES (?)');
mysqli_stmt_bind_param($q, 's', $combinations);
mysqli_stmt_execute($q);

各値を単一にしたい場合はINSERT、データベースに送信した後、次の1500行になります。

$q = mysqli_prepare($con, 'INSERT INTO alphabet_combination (combination) VALUES (?)');
mysqli_stmt_bind_param($q, 's', $combination);

foreach ($_POST['combination'] as $combination) {
    mysqli_stmt_execute($q);
}
于 2013-11-09T18:43:51.193 に答える
0

フォームを送信した後、次のコードを試してください。

extract($_POST);
foreach ($combination as $comb) {
    //if your table has only one field inside:
    $query = mysql_query("INSERT INTO tablename VALUES('".$comb."')");
}

フォームに沿った別のアイデアの別の例:

<?php
if( isset($_POST['btnsubmit']) ){
    extract($_POST);
    foreach ($sample as $samp) {
        $query = mysql_query("INSERT INTO tablename VALUES('".$samp."')");
    }
}
?>
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Sample</title>
</head>
<body>
    <form action="<?php echo $_SERVER['PHP_SELF']?>" method="post">
        <input type="text" name="sample[]" value="hello1"><br>
        <input type="text" name="sample[]" value="hello2"><br>
        <input type="text" name="sample[]" value="hello3"><br>
        <input type="text" name="sample[]" value="hello4"><br>
        <input type="text" name="sample[]" value="hello5"><br>
        <input type="submit" name="btnsubmit" value="Submit">
    </form>
</body>
</html>
于 2013-11-09T18:34:24.983 に答える