Rumah >pangkalan data >tutorial mysql >Bagaimanakah saya boleh memasukkan data dengan cekap daripada berbilang kotak semak dan tatasusunan kotak teks ke dalam pangkalan data MySQL sambil mengendalikan kotak semak yang tidak ditanda dan menghalang manipulasi data?
Dalam senario ini, matlamat utama adalah untuk memasukkan data daripada berbilang kotak semak dan tatasusunan kotak teks ke dalam pangkalan data MySQL dengan cekap. Untuk bermula, mari kita atasi cabaran khusus yang dihadapi dalam kod yang dibentangkan.
Isu pertama berkaitan dengan paparan data kotak pilihan. Kod asal gagal menunjukkan kotak pilihan yang tidak ditandakan, menyebabkan semua pilihan kotak pilihan muncul seperti yang dipilih. Ini disebabkan oleh pengendalian nilai kotak pilihan yang salah.
Isu kedua ialah data tidak dimasukkan dengan betul ke dalam pangkalan data. Walaupun sambungan berjaya ke pangkalan data, tiada data sedang ditulis. Ini disebabkan oleh penggunaan pengindeksan tatasusunan yang salah dan penggunaan MySQLi dan mysql_query API yang tidak betul.
Untuk menyelesaikan isu ini, kami mencadangkan pengubahsuaian kod berikut:
<form method="POST"> <input type="hidden" name="item[]" value="cupcake"> <input type="text" name="items" value="cupcake" readonly><br> <b>Price :</b> <span name="price" value="3.00">.00</span><br> Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br> <input tabindex="1" name="checkbox[0]" type="checkbox" value="17" /><span>Add to Cart</span></label></div></div></td><br> <input type="hidden" name="item[]" value="cake"> <input type="text" name="items" value="cake" readonly><br> <b>Price :</b> <span name="price" value="20.00">.00</span><br> Quantity: <input tabindex="1" name="quantity[]" min="0" max="5" type="number" class="quantity" value="1" /><br> <input tabindex="1" name="checkbox[1]" type="checkbox" value="20" /><span>Add to Cart</span></label></div></div></td><br> <input type="submit" name = "insertBT"><br> </form>
if(isset($_POST['insertBT'])) { $conn = new mysqli ($servername, $username, $password, $db); if($conn->connect_error) { die ("Connection Failed : " . $conn->connect_error); } else { $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(); } } }
Dengan melaksanakan perubahan ini, skrip kini seharusnya mengendalikan data kotak semak dengan betul, lakukan pemasukan data selamat, ambil nilai harga dinamik daripada pangkalan data dan berikan hasil yang tepat. Ingat, sentiasa sahkan bahawa input pengguna dibersihkan dengan betul sebelum melaksanakan operasi pangkalan data untuk mengelakkan potensi kelemahan keselamatan.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memasukkan data dengan cekap daripada berbilang kotak semak dan tatasusunan kotak teks ke dalam pangkalan data MySQL sambil mengendalikan kotak semak yang tidak ditanda dan menghalang manipulasi data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!