为什么这个简单的MySQL查询失败了?

时间:2014-02-26 17:18:32

标签: php mysql

我确定我错过了一些明显的东西,请快速查看,谢谢。问题可能出在结构中(如下所示)。

public function addNewFile($ext) {
    $addNewFileQuery = "INSERT INTO pictures (ext) VALUES (".$ext.")";

    $result = mysqli_query($this->connection, $addNewFileQuery) or die('could not execute query in addnewfile, extension: '.$ext.' query: '. $addNewFileQuery);
    return(mysqli_insert_id($this->connection));
}

显示的模具错误消息是:“无法在addnewfile中执行查询,扩展名:gif查询:INSERT INTO图片(分机)VALUES(gif)”

数据库的结构:

Name    Type           Collation    Attributes  Null    Default Extra

 id     bigint(20)                              No      None    AUTO_INCREMENT (primary)

ext     varchar(6)     latin1_swedish_ci        No      None

title   varchar(100)   latin1_swedish_ci        Yes     NULL

caption varchar(200)    latin1_swedish_ci       Yes     NULL

date_uploaded timestamp                         No      CURRENT_TIMESTAMP   

4 个答案:

答案 0 :(得分:4)

您在插入的值周围缺少单引号

$addNewFileQuery = "INSERT INTO pictures (ext) VALUES ('".$ext."')";

引用您的查询的错误消息显而易见

INSERT INTO pictures (ext) VALUES (gif)

由于周围缺少引号,您可以看到gif不是字符串。

答案 1 :(得分:1)

您的查询缺少值的引用。

... = "INSERT INTO pictures (ext) VALUES ('".$ext."')";

答案 2 :(得分:1)

这是因为您在插入变量之前缺少单引号

将其更改为

$addNewFileQuery = "INSERT INTO pictures (ext) VALUES ('".$ext."')";

答案 3 :(得分:1)

你也可以使用这个 -

$addNewFileQuery = "INSERT INTO pictures (ext) VALUES ('$ext')";