2017-02-21 70 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作爲驗證的一部分,如果他們失敗了驗證。