、私の問題は、私のプログラムは、教師の最初と最後の名前の入力に管理することができ、そして先生はすでにDBに存在するかどうかよりも、ということです。教師がすでにデータベースに存在する場合、プログラムは実行する必要があります:header("location:../../admin.php?msg=Teacher already exists");
、しかし教師がデータベースに存在しない場合、プログラムは教師をデータベースに入れるべきです。しかし、プログラムをテストすると、教師がデータベースに存在しないにもかかわらず、教師をdbに挿入するのではなく、header("location:../../admin.php?msg=Teacher already exists");
というプログラムが実行されました。
PHPコード
<?php
require '../connect.php';
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
// check if inpusta are not empty
if(!empty($firstname) && !empty($lastname)) {
// check if teacher isn't already in the database
$getTeacher = $link->prepare("SELECT * FROM teachers
WHERE firstname = :firstname
AND lastname = :lastname");
$getTeacher->execute(array(
"firstname" => $firstname,
"lastname" => $lastname,
));
$getTeacher = $getTeacher->fetch();
// if teacher doesn't exist in db
if(!getTeacher) {
// insert teacher into db
echo "Success";
} else {
header("location:../../admin.php?msg=Teacher already exists");
}
} else {
header("location:../../admin.php?msg=Required inputs must be filled");
}
?>
でなければなりません。if(!getTeacher) 'はエラーです。それは定数として扱われます。あなたが実際のコードであれば '$'を逃しました。 –