Я создал таблицу с ограничениями NOT NULL
для некоторых столбцов в MySQL. Затем в PHP я написал скрипт для вставки данных с запросом на вставку. Когда я опускаю один из столбцов NOT NULL
в этом операторе вставки, я ожидаю сообщение об ошибке от MySQL, и я ожидаю, что мой скрипт потерпит неудачу. Вместо этого MySQL вставляет пустые строки в поля NOT NULL
. В других пропущенных полях данные имеют значение NULL, что нормально. Может кто-нибудь сказать мне, что я здесь не так сделал?
Я использую эту таблицу:
CREATE TABLE IF NOT EXISTS tblCustomers (
cust_id int(11) NOT NULL AUTO_INCREMENT,
custname varchar(50) NOT NULL,
company varchar(50),
phone varchar(50),
email varchar(50) NOT NULL,
country varchar(50) NOT NULL,
...
date_added timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (cust_id)
) ;
А это оператор вставки:
$sql = "INSERT INTO tblCustomers (custname,company)
VALUES ('".$customerName."','".$_POST["CustomerCompany"]."')";
$res = mysqli_query($mysqli, $sql);
Или используя переменные связывания:
$stmt = mysqli_prepare($mysqli, "INSERT INTO tblCustomers (custname,company, email, country) VALUES (?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, 'ssss', $customerName, $_POST["CustomerCompany"], $_POST["CustomerEmail"], $_POST["AddressCountry"]);
mysqli_stmt_execute($stmt);
mysqli_stmt_close($stmt);