“INSERT INTO”不起作用

时间:2014-04-11 08:50:22

标签: php mysql sql sql-insert

我知道有几个关于为什么INSERT INTO不起作用的主题,但我找不到任何解决方案。

所以问题是我想在我的表中插入新记录。 代码是:

    $query = "INSERT INTO cms_galleryrsrc(_filename) VALUES ('$filename')";
    mysqli_query($db, $query);

MySQL表看起来像: cms_galleryrsrc[_id (int, AUTOINCREMENT); _filename (varchar(255))]

它只是没有做任何事......

注意:例如UPDATESELECT * FROM工作正常。 请帮帮我:)

3 个答案:

答案 0 :(得分:5)

虽然在这种情况下你有一个技术上不需要的限制,但你的代码可以减少到;

// Backtick is optional most of the time, it's personal preference for me.
$query = "INSERT INTO cms_galleryrsrc (`_filename`) VALUES ('$filename')";
mysqli_query($db, $query);

这留下了一个最后的问题;你确认$ filename有值吗?

如果filename不允许空值,MySQL可能拒绝查询,但$ filename为空,则为空。

echo 'FN: ' . $filename;
exit;

在查询上方,然后运行并检查输出。

编辑:在OP的回复之后,我检查了MySQL的文档,_filename是一个保留字。

答案 1 :(得分:1)

在缺少表名空间之后,试试这个应该可以工作,&你不需要限制条款

$query = "INSERT INTO cms_galleryrsrc (_filename) VALUES ('$filename')";

答案 2 :(得分:0)

您的查询中有一个limit 1子句会导致MySQL抛出错误。

虽然可以在插入语句上设置限制条款,但您​​已经赢得的格式无效 - 您必须限制查询。

以下显示了一个包含代码的简单插入内容:

mysql> select * from test1;
+------+-------+
| id   | varry |
+------+-------+
|    1 | aaa   |
|    1 | NULL  |
+------+-------+
2 rows in set (0.03 sec)

mysql> insert into test1 values (2, 'ab') limit 1;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near 'limit
 1' at line 1
mysql> insert into test1 values (2, 'ab');
Query OK, 1 row affected (0.07 sec)

mysql> insert into test1 values(2, 'ab');
Query OK, 1 row affected (0.00 sec)
相关问题