2014-02-26 104 views
0

我敢肯定我错过了一些明显的东西,请快看,谢谢。问题可能出现在结构中(下面发布)。为什么这个简单的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图片(EXT)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 
+0

谢谢大家权之前......>< – Andrew

回答

4

你缺少围绕价值单引号插入

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

这是通过报价查询

INSERT INTO pictures (ext) VALUES (gif) 

你可以看到那里gif是错误消息,取得了明显由于缺乏引号,因此不是字符串。

1

您的查询缺少价值的报价。

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

这是因为你缺少的单引号插入变量

改变它

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

可以使用也这 -

$addNewFileQuery = "INSERT INTO pictures (ext) VALUES ('$ext')"; 
相关问题