Ошибка в php коде, вызов функции-члена prepare () с нулевым значением
<?php
$connection = new PDO('mysql:host=localhost;dbname=form;', 'root', 'root');
if (!$connection)
{
die('Error connect to DataBase');
}
?>
$('.btn').click(function (e) {
e.preventDefault();
let
name = $('input[name="name"]').val(),
phone = $('input[name="phone"]').val(),
mail = $('input[name="mail"]').val(),
messege = $('textarea[name="messege"]').val(),
sum = 100,
order = 100;
let formData = new FormData();
formData.append('name', name);
formData.append('phone', phone);
formData.append('mail', mail);
formData.append('messege', messege);
formData.append('sum', sum);
formData.append('order', order);
$.ajax({
url: '../vendor/add.php',
type: 'POST',
dataType: 'json',
processData: false,
contentType: false,
cache: false,
data: formData,
success (data) {
console.log(data)
if (data.status) {
alert(data.message);
} else {
alert(data.message);
}
}
});
});
В add.php в 40 строке появляется ошибка, Fatal error: Uncaught Error: Call to a member function prepare() on null in C:\Users\name\Desktop\OpenServer\domains\forma\vendor\add.php:40 Stack trace: #0 {main} thrown in C:\Users\name\Desktop\OpenServer\domains\forma\vendor\add.php on line 40
<?php
require_once 'connect.php';
$name = trim(htmlspecialchars($_POST['name']));
$phone = trim(htmlspecialchars($_POST['phone']));
$mail = trim(htmlspecialchars($_POST['mail']));
$messege = trim(htmlspecialchars($_POST['messege']));
$sum = $_POST['sum'];
$order = $_POST['order'];
$error_fields = [];
if (empty($name)) {
$error_fields[] = 'name';
}
if (empty($phone)) {
$error_fields[] = 'password';
}
if (empty($mail)) {
$error_fields[] = 'mail';
}
if (empty($messege)) {
$error_fields[] = 'messege';
}
if (!empty($error_fields)) {
$response = [
"status" => false,
"type" => 1,
"message" => "Проверьте правильность полей",
"fields" => $error_fields
];
echo json_encode($response);
die();
}
// В этом месте
$add = $connection->prepare("INSERT INTO `form` (`id`, `Имя`, `Телефон`, `Email`, `Сообщение`, `Сумма`, `idуслуг`) VALUES (NULL, :name, :phone, :mail, :messege, '$sum', '$order')");
$arr = ['name'=>$name, 'phone'=>$phone, 'mail'=>$mail, 'messege'=>$messege];
$add->execute($arr);
$response = [
"status" => true,
"message" => "Заказ добавлен!",
];
echo json_encode($response);
?>