ProblemAbfrage einfügen nicht in der Datenbank - MySQL
So ist der Benutzer zur Eingabe hat ein Team des leader_id
und der Benutzer kann bis zu 6 student_id
. Mein Problem ist, dass die Daten nicht in die Datenbank eingefügt werden. Das Problem ist unter dem Kommentar PROBLEM
.
So bekomme ich zuerst die Benutzer Eingabedaten, und ich speichern die leader_id
in einer separaten Variablen und die student_id
ist in einem Array. Als nächstes durchlaufe ich die student_id und überprüfe, ob der Benutzer nichts in das Feld student_id
eingegeben hat, und füge dann die leader_id
ein. Aber wenn der Benutzer 1 oder mehr student_id
eingegeben hat, dann habe ich durch das Array geloopt und die Eingänge gespeichert, die einen Wert in ihnen hatten. Dann habe ich die Daten in die Datenbank eingefügt.
Teams Database (leer)
team_id | leader_id | student_id
PHP-Code
<?php
error_reporting(0);
require '../../connect.php';
$leader_id = $_POST['leader_id'];
$students = array(
$_POST['student_id_1'],
$_POST['student_id_2'],
$_POST['student_id_3'],
$_POST['student_id_4'],
$_POST['student_id_5'],
$_POST['student_id_6'],
);
$student_save = array();
if(!empty($leader_id)) {
foreach ($students as $student) {
if(isset($student)) {
array_push($student_save, $student);
} else {
$insert = mysqli_query($link, "INSERT INTO teams (leader_id) VALUES ('$leader_id')");
header("Location: ../../../admin.php?message=Success!");
break;
}
}
foreach ($student_save as $student) {
// PROBLEM
$insert = mysqli_query($link, "INSERT INTO teams ($leader_id, $student_id) VALUES ($leader_id, $student)");
if($insert) {
header("Location: ../../../admin.php?message=Sorry we ran into an error");
} else {
header("Location: ../../../admin.php?message=Success!");
}
}
} else if(empty($leader_id)){
header("Location: ../../../admin.php?message=There must be a leader");
}
?>
Wenn Sie Fragen haben, können Sie mich fragen.
Siehe [wie nützlich Fehlermeldungen erhalten in PHP] (http://stackoverflow.com/questions/845021/how-to-get-useful-error-messages-in-php) und benutze mysqli_error ($ link); 'um MySQL Fehler zu bekommen. Ohne die konkreten Fehler können wir raten, aber ich mag keine Rätselraten - ich mag Fakten ;-) – Qirel
Sie sind weit offen für SQL-Injection. Erfahren Sie, wie Sie vorbereitete Anweisungen und parametrisierte Abfragen verwenden oder ob jemand Ihre Datenbank hackt. – miken32
Und die Spaltennamen in Ihrer zweiten INSERT-Anweisung haben Dollarzeichen in ihnen. –