2017-02-21 71 views
0

我有外地的数组在我的形式不要在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[$i]; 
     $sql1 = "INSERT INTO event_title (event_id, event_title) 
      VALUES (
      '".$lastid."', 
      '".$event_title."' 
      )"; 
    $result1 = mysqli_query($conn,$sql1); 

我的问题是如何我是否阻止在我的数据库中插入NULL值?

+1

检查变量是否为空。如果($ variable!= null){//插入它} else {//它是空的,抛出异常} – Akintunde007

+2

也可以将数据库表架构/列更改为“NOT NULL” – JustBaron

+0

使用代码无法插入NULL值在数据库中。 –

回答

0

只是检查是否变量是空的可以使用!=“”

$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); 
     } 
    } 
+0

为什么你不能使用if($ event_title!= null) – Akintunde007

+0

是否有很大的不同? –

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; 
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); 

} 
0

首先,我要澄清一个普遍的误解。

NULL与FALSE或空字符串或0的意思不同。它是NULL。它基本上意味着'UNKNOWN'。

非空字符串字段可以有一个空值,但它不能有一个NULL值(即它可以被称为是一个空字符串,但不能是未知)

至于你的问题。如果在您尝试向数据库中插入任何内容之前尚未设置任何字段,那么您的表单验证应该会启动。

下面是伪代码的工作流程:

DO { 

GET form submission. 

WHILE (form is not valid); 

insert form values into database. 

如果规则是,你的表不允许使用NULL - 检查这些列不是null作为验证的一部分,如果他们失败了验证。