Php在主键MySql

时间:2017-03-21 20:51:04

标签: php mysql

我在MySql表中插入表单中的值。问题是当我将一个输入字段留空(它是主键)时,db不会抱怨主键为空,并且该行被添加到主键列中具有空白空间的表中。

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

所以在我的情况下,name是空的,我在主键中插入一个NULL但没有来自db的警告。

3 个答案:

答案 0 :(得分:1)

你应该使主键auto_increment而不是null

试试吧

CREATE TABLE vendedor(      id MEDIUMINT NOT NULL AUTO_INCREMENT,      name CHAR(30)NOT NULL,      PRIMARY KEY(id) );

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

答案 1 :(得分:0)

是插入NULL值是正确的方法,但在代码中有一个简单的条件错误,这是解决方案:

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

答案 2 :(得分:0)

可能你有多个主键。在这种情况下,只有您的第一个主键不能为空且必须是唯一的,其他主键不是。因此,如果您只想为唯一值设置列,则可以添加唯一索引。

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