我无法将数据插入MySQL数据库
{
"channel": "channenID",
"text": "Some text",
"attachments": [{
"text": "Attachment text",
"callback_id": "my_callback",
"actions": [{
"name": "action",
"type": "button",
"text": "Button text",
"style": "primary",
"value": "Some value"
}]
}]
}
当我尝试注册时,出现此错误,并且在msql表中未添加任何数据。
DROP TABLE IF EXISTS `register`;
CREATE TABLE `register` (
`id` int(11) NOT NULL,
`username` varchar(100) NOT NULL,
`unique_code` varchar(300) NOT NULL,
`email` varchar(300) NOT NULL,
`name` varchar(300) NOT NULL,
`mobile` varchar(200) NOT NULL,
`address` longtext NOT NULL,
`state` varchar(50) NOT NULL,
`country` varchar(50) NOT NULL,
`zipcode` varchar(50) NOT NULL,
`city` varchar(200) NOT NULL,
`password` varchar(300) NOT NULL,
`temp_password` varchar(300) NOT NULL,
`image` varchar(300) NOT NULL,
`phone_verified` int(11) NOT NULL,
`reg_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`status` int(11) NOT NULL,
`gcm_code` longtext NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
这是我的MySQL数据库连接文件
INSERT INTO register (
username,
mobile,
password,
temp_password,
email,
status
)
VALUES (
"user",
"1234678",
"202cb962ac59075b964b07152d234b70",
"123",
"admin@admin.com",
""
)
Error in query.
如果有人解决了这个问题,我将不胜感激。
更新: 我将上一张表更改为此。
define('DIRECT_ACCESS', true);
define('HOST','localhost');
define('DATABASE','id9346797_market');
define('USERNAME','idxxxxxxxxxxxx');
define('PASSWORD','xxxxxxxx');
define('DB_PREFIX','');
define('SITE_URL', (@$_SERVER['HTTPS'] ? "https" : "http") . "://" . $_SERVER['HTTP_HOST']."/fruitmarket/");
并更改mysql数据库的最后一行
从此
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` int(11) NOT NULL,
`username` varchar(60) NOT NULL,
`mobile` varchar(60) NOT NULL,
`password` varchar(60) NOT NULL,
`email` varchar(255) NOT NULL,
`active` tinyint(4) NOT NULL,
`type` varchar(5) NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
对此
define('SITE_URL', (@$_SERVER['HTTPS'] ? "https" : "http") . "://" . $_SERVER['HTTP_HOST']."/fruitmarket/");
我仍然遇到相同的错误。
这是报名表
define('SITE_URL','http://localhost/fruitmarket/');
答案 0 :(得分:5)
错误消息对您没有帮助,是MySQL返回的全部内容吗?
您的表中有大量字段,这些字段定义为NOT NULL
,并且没有默认约束。但是您的INSERT
查询未指定所有值。您需要执行以下一项(或多项):
INSERT
值NOT NULL
字段创建默认约束NULL
答案 1 :(得分:4)
表中有成千上万的列被声明为NOT NULL
,但没有默认值,例如zip_code
和city
。
您需要做以下三件事之一:
NOT NULL
约束。我不确定哪种方法适合您的目的。
答案 2 :(得分:1)
状态为INT而不是VARCHAR
INSERT INTO register (
username,
mobile,
password,
temp_password,
email,
status
)
VALUES (
"user",
"1234678",
"202cb962ac59075b964b07152d234b70",
"123",
"admin@admin.com",
0 // not varchar
)
答案 3 :(得分:1)
未插入记录,因为已为每列放置NOT NULL,这意味着为了插入记录,应提供所有列的值。
如果只想插入设置了这些值的记录,则必须删除其他列的NOT NULL定义。