我正在尝试将数据插入到某个表中,但这不起作用。使用相同的代码插入其他表工作:
$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
表中的surname
和users
与name
表中的desc
和projects
具有相同的类型。数据库以“通常”的方式连接,使用面向对象的 PHP 的 MySQL 版本。
在我看来,好像我没有做错任何事。也许有人在某些时候经历过类似的事情,因此可以指出我正确的方向?
答案 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');";
这将确保正确解释所有保留关键字,而不是我看到任何特定关键字。