无法插入特定的

时间:2017-02-10 04:43:50

标签: php mysql

我正在尝试将数据插入到某个表中,但这不起作用。使用相同的代码插入其他表工作:

$sql = "INSERT INTO projects (name, desc) VALUES ('$name', '$desc')";

if($this->conn->query($sql) !== true)
{
    echo(mysqli_error($this->model->conn));
}

在桌子上使用它时,我希望将数据插入(projects),它通知我以下内容:

  

您的SQL语法有错误;检查与您的MariaDB服务器版本对应的手册,以便在'desc'附近使用正确的语法VALUES('das','das')'在行...

另一方面,使用相同的代码 - 稍微修改一下:

$sql = "INSERT INTO users (forename, surname) VALUES ('$name', '$desc')";

这已成功将$name$desc插入users表格。

forename表中的surnameusersname表中的descprojects具有相同的类型。数据库以“通常”的方式连接,使用面向对象的 PHP MySQL 版本。

在我看来,好像我没有做错任何事。也许有人在某些时候经历过类似的事情,因此可以指出我正确的方向?

2 个答案:

答案 0 :(得分:4)

我认为这里的问题是你的表名desc,它是一个保留的MySQL关键字。 参见:

https://dev.mysql.com/doc/refman/5.7/en/keywords.html

将它包裹在后面的滴答声中可能有效:

for x in xrange(1, 10001):
    y = float(value - (x * x_val)) / y_val
    if int(y) == y and 10000 >= y >= 1:
        print ("x={}, y={}".format(int(x), int(y)))

When to use single quotes, double quotes, and backticks in MySQL

但我建议您更改表名。

答案 1 :(得分:-2)

试试这个:

$sql = "INSERT INTO 'projects' ('name', 'desc') VALUES ('$name', '$desc');";

这将确保正确解释所有保留关键字,而不是我看到任何特定关键字。