我正在将(PHP-CRUD-API)与MySQL数据库一起使用。
当我发送一个简单的POST并在其内部传递一个JSON对象时,表的VARCHAR(255)列将接收NULL值。
这是我的CREATE TABLE语句
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
当我发送通过身体的POST时
{"id": 1, "name": "Someone", "email": "something@x.com"}
它返回状态200,该行插入到表中,但是NAME和EMAIL列具有NULL值。
当我发送GET时,一切都正确(我已经手动插入了几行来对此进行测试)。
我想念什么?
已编辑:如果我在请求中以x-www-form-urlencoded的形式发送了数据,则该数据有效。我更喜欢在体内传递JSON对象,但是...
答案 0 :(得分:1)
此行为是MySQL设置在插入缺失值时的默认行为。如果要使用空字符串,则应在“ varchar”类型定义之前添加“ NOT NULL”。
NB:我是PHP-CRUD-API的作者