【问题标题】:SQL query not executing via php, can't find the error sourceSQL查询未通过php执行,找不到错误源
【发布时间】:2017-03-02 10:58:50
【问题描述】:

我使用以下命令创建了 artists 表:

$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')

编辑: 我已经编辑了遍历每个字段的函数,以及插入和 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'),效果很好

【问题讨论】:

  • 不要费心给id 赋值,因为它已经自动递增了。请包括它返回的错误

标签: php sql


【解决方案1】:

错误是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'
    , ''
    , ''
    , ''
    , ''
    , ''
    , ''
    , ''
    , ''
    , ''
    , ''
    , ''
    , ''
    , '');

错误是 '' (string empty) for and int value

【讨论】:

  • 所以这确实是问题所在,在这里我认为这只是错误的一小部分,这就是我评论它的原因哈哈
  • @CarlJan .i 已用错误原因更新了答案
  • 不错。 OP 没有包含错误,这就是为什么我不确定我的评论是否正确
  • 谢谢,我修改了代码,但似乎仍然出现错误
  • 查询似乎正确..然后更新您的问题显示确切的错误消息..
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 2010-12-04
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 1970-01-01
相关资源
最近更新 更多