Това е един пример за използване на подготвени оператори наистина ви спестява някои проблеми.
В MySQL, за да вмъкнете нулева стойност, трябва да я посочите в INSERT
време или оставете полето извън, което изисква допълнително разклоняване:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', NULL);
Ако обаче искате да вмъкнете стойност в това поле, сега трябва да разклоните кода си, за да добавите единични кавички:
INSERT INTO table2 (f1, f2)
VALUES ('String Value', 'String Value');
Подготвените изявления автоматично правят това вместо вас. Те знаят разликата между string(0) ""
и null
и напишете заявката си по подходящ начин:
$stmt = $mysqli->prepare("INSERT INTO table2 (f1, f2) VALUES (?, ?)");
$stmt->bind_param('ss', $field1, $field2);
$field1 = "String Value";
$field2 = null;
$stmt->execute();
Той избягва полетата ви вместо вас, гарантира, че не забравяте да свържете параметър. Няма причина да останете с mysql
разширение. Използвайте mysqli
и това са подготвени изявления
вместо. Ще си спестите цял свят от болка.