簡體   English   中英

PHP在主鍵MySql中沒有插入任何值

[英]Php insert no value in primary key MySql

我正在從MySql表中的窗體中插入值。 問題是當我將一個輸入字段保留為空(它是一個主鍵)時,數據庫不會抱怨主鍵為空,並且該行被添加到表中,並且主鍵列中的空間為空。

 $this->vendor_name = empty($params['name'])? $params['name']:null;

因此,在我的情況下,名稱為空,並且在主鍵中插入了NULL,但數據庫沒有警告。

您應該使主鍵為auto_increment而不是null

試試吧

創建表供應商(id MEDIUMINT NOT NULL AUTO_INCREMENT,名稱CHAR(30)NOT NULL,PRIMARY KEY(id));

https://dev.mysql.com/doc/refman/5.7/zh/example-auto-increment.html

是的,插入NULL值是正確的方法,但是在代碼中有一個簡單的條件錯誤,這是解決方案:

!empty($params['name'])?$params['name']:null;

可能您有多個主鍵。 在這種情況下,只有您的第一個主鍵不能為null,並且必須是唯一的,其他則不能。 因此,如果您只想為唯一值設置列,則可以添加唯一索引。

ALTER TABLE `your_table`
ADD UNIQUE INDEX (`column_name`);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM