PHP – Verhindern, dass doppelte data in die MySQL-database eingefügt werden

Hey Jungs Ich brauche Ihre Hilfe, wie ich bin sehr neu in PHP. Ich schaute auf ähnliche Fragen, die zuvor von anderen hier gepostet worden waren, aber es half mir nicht, also schaffe ich ein neues.

<?php $servername = "localhost"; $name = "root"; $password = "root"; $dbname = "my computer"; // Create connection $conn = mysqli_connect($servername, $name, $password, $dbname); // Check connection if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $query = "SELECT * FROM `booked` WHERE `name` = '{$username}' `date` = '{$date}' `computer_id` = '{$select3}' `start_time` = '{$select1}' `end_time` = '{$select2}' `room` = '{$room}' "; $result = mysqli_query($conn, $query); if ( mysqli_num_rows ( $result ) > 1 ) { echo "data already exists"; } else { $sql = "INSERT INTO booked (date, computer_id, name, start_time, end_time, room) VALUES ('$date', '$select3', '$username', '$select1', '$select2', '$room')"; if (mysqli_query($conn, $sql)) { echo "New record created successfully"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); } ?> 

Hier ist mein Code, der die variableswerte in bestimmten Tabellenzeilen innerhalb der Tabelle "gebucht" speichert.

Ich möchte sicherstellen, dass mysql die Einfügung des Wertes innerhalb der databasetabelle "gebucht" ablehnt, wenn die gleichen Werte bereits in der database vorhanden sind. Hinweis: Alle Werte müssen identisch sein. Wenn alle Werte mit exception eines Wertes identisch sind, sollte das System die Einfügung noch akzeptieren. Wenn doppelte Werte gefunden werden, sollte es echo "kann keine data insert duplicate values ​​found"

Vielen Dank im Voraus

Beide sollten funktionieren.

 ALTER TABLE `tableName` ADD UNIQUE `unique_index`(`columnName1` ,`columnName2`); 

ODER (mysql Version 5.5.32)

 ALTER TABLE `tableName` ADD UNIQUE (`columnName1` ,`columnName2`); 

ODER

Wenn doppelte Werte gefunden werden, sollte es echo "kann keine data insert duplicate values ​​found"

Sie können zuerst überprüfen, ob die data dort bereits vorhanden sind und danach mit Ihrer INSERT Abfrage weitergehen. PS Dies könnte auch mit einer Unterabfrage erfolgen.

Einweg:

 $query = "SELECT * FROM `tableName` WHERE `columnName1` = '{$val1}'"; $result = mysqli_query($conn, $query); if ( mysqli_num_rows ( $result ) > 1 ) { //data already exists } else { //do your INSERT query here } 

Ein fortgeschritteneres System sollte PDO sein.

Gehen Sie schauen PDO oben, und wie man es benutzt, ist es ziemlich erstaunlich, wenn Sie es gehen lassen.