SQL查询没有通过php执行,找不到错误源

时间:2017-03-02 10:58:51

标签: php sql

我使用以下命令创建了 艺术家 表:

$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'),效果很好

1 个答案:

答案 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值