ホームページ >データベース >mysql チュートリアル >PHP を使用して複数のチェックボックスとテキストボックスの配列値を MySQL データベースに効率的に挿入するにはどうすればよいですか?

PHP を使用して複数のチェックボックスとテキストボックスの配列値を MySQL データベースに効率的に挿入するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-28 15:51:12285ブラウズ

How to Efficiently Insert Multiple Checkbox and Textbox Array Values into a MySQL Database Using PHP?

MySQL データベースへの配列データの挿入

PHP では、複数のチェックボックスおよびテキストボックスの配列値を MySQL データベースに挿入するのが難しい場合があります。

チェックボックスの選択のずれ

すべてのチェックボックスの値 (マークされていないものを含む) の表示に関する問題は、配列の処理が正しくないことが原因で発生します。これを解決するには、チェックボックス名のインデックスを明示的に作成します。例:

<input type="checkbox" name="checkbox[0]" value="17" />

これにより、チェックボックスのインデックスと、対応する品目および数量の値が直接対応することが保証されます。

データベースの挿入がありません

にもかかわらずデータベース接続を確立していますが、実際のデータ挿入に問題があるようです。 MySQL 関数の誤った使用が原因として特定されています。

MySQLi と MySQL API を混合しないでください。 mysql_query を使用する代わりに、データベース操作に適切な $conn->query() メソッドを使用します。

コード例

$stmt = $conn->prepare("INSERT INTO purchases (Product, Quantity, Price) VALUES (?, ?, ?)");
$stmt->bind_param("sis", $name, $quantity, $price);

foreach ($_POST['checkbox'] as $i => $price) {
    $name = $_POST['name'][$i];
    $quantity = $_POST['quantity'][$i];
    $stmt->execute();
}

その他の考慮事項

  • 代わりにデータベースに価格を保存しますHTML を使用して操作の可能性を防ぎます。
  • SQL インジェクションを防ぐためにプリペアド ステートメントを使用します。
  • MySQLi を使用する場合は、$conn->query() を mysqli_query($conn, $) に置き換えてください。クエリ);.

以上がPHP を使用して複数のチェックボックスとテキストボックスの配列値を MySQL データベースに効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。