我的表单中有一个字段数组
<input type="text" class="form-control" name="event_title[]">
我收到所有数据并成功插入我的数据库
$events = $_POST['event_title'];
$totalEvents = sizeof($events);
for($i = 0; $i < $totalEvents; $i++) {
$event_title = $events[$i];
$sql1 = "INSERT INTO event_title (event_id, event_title)
VALUES (
'".$lastid."',
'".$event_title."'
)";
$result1 = mysqli_query($conn,$sql1);
我的问题是如何防止在我的数据库中插入NULL值?
答案 0 :(得分:0)
检查变量是否为空可以使用!=&#39;&#39;
$events = $_POST['event_title'];
$totalEvents = sizeof($events);
for($i = 0; $i < $totalEvents; $i++) {
$event_title = $events[$i];
if($event_title!=''){
$sql1 = "INSERT INTO event_title (event_id, event_title)
VALUES (
'".$lastid."',
'".$event_title."'
)";
$result1 = mysqli_query($conn,$sql1);
}
}
答案 1 :(得分:0)
您可以在创建或修改表格时创建NOT NULL
约束。
如果您还没有创建表格:
CREATE TABLE authors(
author_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
author_name VARCHAR(40) NOT NULL,
bio VARCHAR(400) NULL
)
您可以将NOT NULL
约束添加到您的列,以防止NULL
值。
如果您已经创建了表,则可以修改:
ALTER TABLE table
ALTER COLUMN column NOT NULL;
答案 2 :(得分:0)
尝试
$totalEvents = sizeof($_POST['event_title']);
for ($i = 0; $i < $totalEvents; $i++) {
$event_title = $events[$i];
if (strlen($event_title) == 0) {
continue;
}
$sql1 = "INSERT INTO event_title (event_id, event_title)
VALUES (
'" . $lastid . "',
'" . $event_title . "'
)";
$result1 = mysqli_query($conn, $sql1);
}
答案 3 :(得分:0)
首先,我将澄清一个常见的误解。
NULL并不意味着与FALSE相同,或者是空字符串或0.它是NULL。它本质上意味着“未知”。
一个NOT NULL字符串字段可以有一个空值但它不能有一个NULL值(即它可以知道是一个空字符串,但不能知道)
关于你的问题。如果在您尝试将任何内容插入数据库之前很久没有设置任何字段,则应该选择表单验证。
这里是伪代码的工作流程:
DO {
GET form submission.
WHILE (form is not valid);
insert form values into database.
如果规则是您的表不允许NULL - 请检查这些列在验证过程中是否为空,如果不是则验证失败。