";插入“;不会';不起作用


"INSERT INTO" doesn't work

我知道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工作正常。请帮帮我:)

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

// 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是一个保留字。

在缺少表名称空间后,尝试一下它应该可以工作,&你不需要限制条款

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

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

虽然可以在insert语句中使用limit子句,但您所使用的格式不起作用——您必须限制查询。

下面显示了一个简单的代码插入:

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)