2016-05-23 40 views
0

我想插入特定的值到MySQL表,但每當我這樣做,發生錯誤,不能插入。當我追蹤它時,我注意到只有在給定所有實體或者將聲明所有實體的情況下才能插入查詢。我怎樣才能解決這個使用PHP代碼?插入特定的查詢到表

if (isset($_POST['submit'])) { 
    $rec_qty=$_POST['rec_qty']; 
    $id=$_POST['item_id']; 

    for($i=0; $i < count($_POST['rec_qty']);$i++) { 
     $sql = mysqli_query($conn,"INSERT INTO itemlist (quantity) values('".$_POST['rec_qty'][$i]."') ") or die ("Error description: " . mysqli_error($conn)); 

     $update = "$conn,UPDATE itemlist set quantity='$quantity' where item_id='$id'"; 

     if($sql) { 
      header("Location: received_item.php?attempt=success"); 
     } else {   
      header("Location: received_item.php?attempt=empty"); 
     } 
    } 

/**Error description: Field 'item_name' doesn't have a default value**/ 
+2

您可以發佈您的SQL和記錄你的錯誤,所有查看? – Muymuy1

+0

請添加代碼,並且錯誤日誌 – Nehal

+0

已發佈代碼..謝謝 –

回答

2

表格中的item_name字段聲明爲not null沒有默認值。一種方法是以您提供數量的相同方式在您的insert聲明中提供。

另一種方法是將表定義更改爲允許null S:

ALTER TABLE itemlist MODIFY COLUMN item_name VARCHAR(10) NULL; 

,或者有一個默認值:

ALTER TABLE itemlist ALTER item_name SET DEFAULT 'somename'; 
+0

事實上,它被聲明爲非空,因爲2個表之間存在關係。即時通訊試圖通過相同的領域,但只有數量將改變..例如即時訂購500doz,我只收到450所以450將是我的數量的新價值。 –