【发布时间】:2011-05-30 14:31:13
【问题描述】:
我正在尝试在 PHP 表单中使用 this trigger。我已经尝试了以下方法,但是当我提交表单时,我的表中仍然插入了空行。
$trigger="DELIMITER $$
CREATE TRIGGER check_not_all_null BEFORE INSERT ON agent FOR EACH ROW
BEGIN
IF COALESCE(first_name, last_name, affiliation) IS NOT NULL THEN
CALL fail('All fields cannot be null');
END IF;
END $$
DELIMITER ; ";
$execute = mysql_query($trigger);
$query4 = "INSERT INTO agent
(first_name, last_name, affiliation)
VALUES
('$first_name', '$last_name', '$affiliation')";
$result4 = mysql_query($query4, $connection) or die('Error querying database.');
【问题讨论】:
-
插入的字段真的为空吗?您也可能发送零长度字符串(可能会更改为 null)。
-
我不认为mysql触发器是一个很好的输入验证方法。我认为最好在 javascript 和 php 中执行此操作。
-
@lex Javascript 不是解决这个问题的方法。
-
为什么不在字段上加上一个约束,指定一个 NOT NULL 子句?