Heim > Datenbank > MySQL-Tutorial > Wie kann ich Daten aus mehreren Kontrollkästchen- und Textfeld-Arrays effizient in eine MySQL-Datenbank einfügen und gleichzeitig nicht aktivierte Kontrollkästchen verarbeiten und Datenmanipulation verhindern?

Wie kann ich Daten aus mehreren Kontrollkästchen- und Textfeld-Arrays effizient in eine MySQL-Datenbank einfügen und gleichzeitig nicht aktivierte Kontrollkästchen verarbeiten und Datenmanipulation verhindern?

Patricia Arquette
Freigeben: 2024-12-09 20:16:14
Original
208 Leute haben es durchsucht

How can I efficiently insert data from multiple checkbox and textbox arrays into a MySQL database while handling unchecked checkboxes and preventing data manipulation?

Einfügen mehrerer Kontrollkästchen- und Textfeld-Arrays in die MySQL-Datenbank

In diesem Szenario besteht das Hauptziel darin, Daten aus mehreren Kontrollkästchen- und Textfeld-Arrays effizient in eine MySQL-Datenbank einzufügen. Lassen Sie uns zunächst die spezifischen Herausforderungen ansprechen, die im vorgestellten Code auftreten.

Fehlinterpretation von Kontrollkästchendaten

Das erste Problem betrifft die Anzeige von Kontrollkästchendaten. Der Originalcode konnte nicht markierte Kontrollkästchen nicht anzeigen, was dazu führte, dass alle Kontrollkästchenoptionen als ausgewählt angezeigt wurden. Dies liegt an der fehlerhaften Verarbeitung der Kontrollkästchenwerte.

Unvollständige Dateneinfügung

Das zweite Problem besteht darin, dass die Daten nicht ordnungsgemäß in die Datenbank eingefügt wurden. Trotz erfolgreicher Verbindung zur Datenbank wurden keine Daten geschrieben. Dies wird durch die falsche Verwendung der Array-Indizierung und die unsachgemäße Verwendung der MySQLi- und mysql_query-APIs verursacht.

Codeänderungen

Um diese Probleme zu beheben, schlagen wir die folgenden Codeänderungen vor:

  • Ändern Sie das HTML-Formular, um die Namen der Kontrollkästchen explizit zu indizieren, damit sie mit den entsprechenden Artikel- und Mengenwerten übereinstimmen.
  • Innerhalb Verwenden Sie im PHP-Skript die vorbereiteten Anweisungen von MySQLi für eine sichere und effiziente Dateneinfügung.
  • Entfernen Sie manuelle Preiswerte aus dem HTML und rufen Sie sie während der Verarbeitung aus der Datenbank ab, um mögliche Datenmanipulationen zu verhindern.
  • Stellen Sie Konsistenz sicher Verwendung von MySQLi-APIs im gesamten Code.

Aktualisiertes HTML:

<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>
Nach dem Login kopieren

Überarbeitetes PHP Skript:

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();
        }
    }
}
Nach dem Login kopieren

Durch die Implementierung dieser Änderungen sollte das Skript nun Kontrollkästchendaten korrekt verarbeiten, eine sichere Dateneinfügung durchführen, dynamische Preiswerte aus der Datenbank abrufen und genaue Ergebnisse liefern. Denken Sie daran, immer sicherzustellen, dass Benutzereingaben ordnungsgemäß bereinigt werden, bevor Sie Datenbankvorgänge ausführen, um potenzielle Sicherheitslücken zu vermeiden.

Das obige ist der detaillierte Inhalt vonWie kann ich Daten aus mehreren Kontrollkästchen- und Textfeld-Arrays effizient in eine MySQL-Datenbank einfügen und gleichzeitig nicht aktivierte Kontrollkästchen verarbeiten und Datenmanipulation verhindern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage