Сначала вот мой код:
database.php (установленное соединение, поэтому я могу использовать с требованием)
<?php $servername = "localhost"; $username = "root"; $password = "root"; $port = 8889; $database = "oopdb"; try{ $conn = new PDO("mysql:host=$servername; dbname=$database; port=$port", $username, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conn->exec("SET NAMES 'utf8'"); }catch(Exception $e){ echo "Error: " . $e->getMessage(); exit; } ?>
Затем мой основной файл PHP с формой:
<!DOCTYPE html> <html> <head> <title>Forms with PDO</title> </head> <body> <?php require("database.php"); if(isset($_POST['submit'])){ try{ // prepare and bind $stmt = $conn->prepare("INSERT INTO clients (phonenumber, firstname, lastname, address, note) VALUES (:phonenumber, :firstname, :lastname, :address, :note)"); $stmt->bindParam(':phonenumber', $phonenumber, PDO::PARAM_STR); $stmt->bindParam(':firstname', $firstname, PDO::PARAM_STR); $stmt->bindParam(':lastname', $lastname, PDO::PARAM_STR); $stmt->bindParam(':address', $address, PDO::PARAM_STR); $stmt->bindParam(':note', $note, PDO::PARAM_STR); // set parameters and execute if(isset($_POST['phonenumber'])){ $phonenumber = $_POST['phonenumber']; } if(isset($_POST['firstname'])){ $firstname = $_POST['firstname']; } if(isset($_POST['lastname'])){ $lastname = $_POST['lastname']; } if(isset($_POST['address'])){ $address = $_POST['address']; } if(isset($_POST['note'])){ $note = $_POST['note']; } $stmt->execute(); }catch (Exception $e) { echo "$e"; exit; } } ?> <h2>The Form</h2> <hr /> <br /> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> Number: <input type="text" name="number" value="" /> <br /><br /> First Name: <input type="text" name="firstname" value="" /> <br /><br /> Last Name: <input type="text" name="lastname" value="" /> <br /><br /> Address: <input type="text" name="address" value="" /> <br /><br /> Notes: <input type="text" name="notes" value="" /> <br /><br /> <input type="submit" name="submit" value="Submit"> </form> <br /> <hr /> </body> </html>
Поэтому я пытаюсь ВСТАВИТЬ данные из моей формы в мою базу данных, но я продолжаю получать эту ошибку:
исключение «PDOException» с сообщением «SQLSTATE [23000]: нарушение ограничения целостности: 1048 Колонка« phonenumber »не может быть« null »в /Users/lucasantos/Sites/oop_testing/form.php:32 Трассировка стека: # 0 / Пользователи / lucasantos / Сайты / oop_testing / form.php (32): PDOStatement-> execute () # 1 {main}
На самом деле не понимаю, что здесь происходит, я снова проверил код и проверил ошибку в Интернете и не нашел ничего подходящего. Пожалуйста помоги.
Дополнительная информация:
– Я делаю это на местном хозяине через MAMP, если это имеет значение.
– У меня также есть столбец для идентификатора строки, но я не включил его, потому что он настроен на автоматическое увеличение.
Спасибо!