我使用以下命令创建了 艺术家 表:
$sql = "CREATE TABLE artists (
id int(11) NOT NULL auto_increment,
username VARCHAR(20),
password VARCHAR(20),
first_name VARCHAR(20),
last_name VARCHAR(50),
email VARCHAR(30),
phone VARCHAR(15),
genre VARCHAR(20),
location VARCHAR(20),
description VARCHAR(3000),
promo VARCHAR(200),
soundclound VARCHAR(100),
instruments VARCHAR(100),
event_type VARCHAR(100),
youtube VARCHAR(100),
experience VARCHAR(10),
PRIMARY KEY (id)
);";
$database->query($sql);
我想简单地在上面创建的表中添加用户名和密码的记录。我有一个函数,当我回显它时创建以下SQL查询:
INSERT INTO artists
(id,username,password,first_name,last_name,
email,phone,genre,location,description,
promo,soundcloud,instruments,event_type,youtube,
experience)
VALUES ('', '12345', '12345', '', '',
'', '', '', '', '',
'', '', '', '', '',
'')
但是,当我删除echo $sql
并致电$database->query($sql)
时,会返回错误。
只需使用SQL
即可INSERT INTO artists (first_name,last_name) VALUES ('12345','12345')
修改 我编辑了遍历每个字段的函数,以及insert和id:
// if ($database->query($sql)) {
// $this->id = $database->insert_id();
// return true;} else {return false;}
echo $sql;
返回以下内容:
INSERT INTO artists (username,password,first_name,last_name,email,phone,genre,location,description,promo,soundcloud,instruments,event_type,youtube,experience) VALUES ('133', '133', '', '', '', '', '', '', '', '', '', '', '', '', '')
但是当我尝试运行它时,我仍然会收到错误。
我尝试了一个简单的查询INSERT INTO artists (username,password) VALUES ('123','123')
,效果很好
答案 0 :(得分:4)
错误是'' (字符串为空)表示ID(int声明)值,正确的解决方案是
不要插入ID(是auto_increment)
INSERT INTO artists (
,username
,password
,first_name
,last_name
,email
,phone
,genre
,location
,description
,promo
,soundcloud
,instruments
,event_type
,youtube
,experience)
VALUES (
'12345'
, '12345'
, ''
, ''
, ''
, ''
, ''
, ''
, ''
, ''
, ''
, ''
, ''
, ''
, '');
错误是'' (字符串为空)for和int值