PHP-CRUD-API在列上插入NULL

PHP-CRUD-API在列上插入NULL,php,api,Php,Api,我将()用于MySQL数据库 当我发送一个简单的POST并在主体中传递一个JSON对象时,表的VARCHAR(255)列接收空值 这是我的CREATETABLE语句 CREATE TABLE users ( id integer NOT NULL AUTO_INCREMENT, name varchar(255) , email varchar(255), PRIMARY KEY (id) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSE

我将()用于MySQL数据库

当我发送一个简单的POST并在主体中传递一个JSON对象时,表的VARCHAR(255)列接收空值

这是我的CREATETABLE语句

CREATE TABLE users (   id integer NOT NULL AUTO_INCREMENT,  name varchar(255) ,  email varchar(255),  PRIMARY KEY (id)  ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8
当我在身体里发送一个帖子时

{"id": 1, "name": "Someone", "email": "something@x.com"}
它返回状态200,行插入表中,但名称和电子邮件列具有空值

当我发送GET时,一切都是正确的(我已经手动插入了一些行来测试这一点)

我错过了什么


已编辑:如果我在请求中以x-www-form-urlencoded的形式发送数据,它会工作。我更喜欢在主体中传递JSON对象,但是…

此行为是MySQL设置插入缺少值时的默认行为。如果需要空字符串,则应在“varchar”类型定义之前添加“notnull”


注意:我是PHP-CRUD-API的作者

你认为会发生什么?你能澄清这个问题吗?我在我的json对象上传递非空值。如果在列上放置NOTNULL约束,则插入失败。如果使用上述定义保留表,则即使传递到json对象上的NOTNULL(也不缺少)值也会作为null存储在表中。我认为我的json将用于填充列。没有别的了。。。