Php 不要在Mysqli查询中插入空值

Php 不要在Mysqli查询中插入空值,php,mysqli,Php,Mysqli,我的表单中有一个字段数组 <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[

我的表单中有一个字段数组

<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);
$events=$\u POST['event\u title'];
$totalEvents=sizeof($events);
对于($i=0;$i<$totalEvents;$i++){
$event_title=$events[$i];
$sql1=“插入事件标题(事件id、事件标题)
价值观(
“$lastid。”,
“$event_title.”
)";
$result1=mysqli\u查询($conn,$sql1);

我的问题是如何防止在数据库中插入空值?

只需检查变量是否为空即可使用!=''

$events=$\u POST['event\u title'];
$totalEvents=sizeof($events);
对于($i=0;$i<$totalEvents;$i++){
$event_title=$events[$i];
如果($event_title!=''){
$sql1=“插入事件标题(事件id、事件标题)
价值观(
“$lastid。”,
“$event_title.”
)";
$result1=mysqli\u查询($conn,$sql1);
}
}

您可以在创建或修改表时创建
非空
约束

如果尚未创建表,请执行以下操作:

CREATE TABLE authors(
  author_id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
  author_name VARCHAR(40) NOT NULL,
  bio VARCHAR(400) NULL
)
您可以向列添加
notnull
约束,以防止
NULL

如果已经创建了表,则可以修改:

ALTER TABLE table
ALTER COLUMN column NOT NULL;
试一试

$totalEvents=sizeof($\u POST['event\u title']);
对于($i=0;$i<$totalEvents;$i++){
$event_title=$events[$i];
if(strlen($event_title)==0){
继续;
}
$sql1=“插入事件标题(事件id、事件标题)
价值观(
“$lastid。”,
“$event_title.”
)";
$result1=mysqli\u查询($conn,$sql1);
}

首先,我要澄清一个常见的误解

NULL与FALSE、空字符串或0的含义不同。它是NULL。它本质上表示“未知”

非空字符串字段可以有空值,但不能有空值(即可以知道它是空字符串,但不能未知)

对于您的问题,如果在您尝试向数据库中插入任何内容之前很久没有设置任何字段,那么您的表单验证应该开始

以下是伪代码中的工作流:

DO {

 GET form submission.

WHILE (form is not valid);

insert form values into database.

如果规则是您的表不允许空值-作为验证的一部分,请检查这些列是否为空,如果为空,则验证失败。

检查变量是否为空。如果($variable!=null){//插入它}否则{//它为空,抛出异常}还可以使用代码将数据库表架构/列更改为
非NULL
。无法在数据库中插入NULL值。如果($event\u title!=NULL)存在较大差异,为什么不能使用?
$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);

}
DO {

 GET form submission.

WHILE (form is not valid);

insert form values into database.