PHP Insert Into Statement总是失败

时间:2015-08-23 12:34:56

标签: php mysql

我正在建立自己的网站,而且我正处于后端管理部分,我目前仍然坚持将表单中的详细信息提交到我的数据库中,但无论如何我都会一遍又一遍地得到同样的错误,这是:

  

错误:   您的SQL语法有错误;查看与您的> MySQL服务器版本对应的手册,以便使用接近'更改的值语法(' Connor',>' Connor')&#39 ;在第1行

这是给我错误的代码(它完美地连接到数据库):

$query = "INSERT INTO changes (DevName,Change) VALUES ('$dev', '$changed')";

$a = mysql_query($query);

当我查看其他代码时,它一直在说语法错误,它显示与我所拥有的代码完全相同的东西(当然除了变量)。

2 个答案:

答案 0 :(得分:2)

原因是Change is a reserve word in MySQL ..你必须使用backtique来逃避它。

以下工作正常,否则爆炸:

create table changes
(   DevName varchar(100),
    `Change` varchar(100)
);

insert changes(DevName,`Change`) values ('1','2');

答案 1 :(得分:0)

不要使用mysql _ * 方法,因为它们在PHP5.5中已弃用,在PHP7中已删除。而不应该使用PDO或mysqli

$sth = $dbh->prepare('INSERT INTO changes ('DevName', 'Change') VALUES (:dev, :changed)');
$sth->bindParam(':dev', $dev, PDO::PARAM_STR);
$sth->bindParam(':changed', $changed, PDO::PARAM_BOOL);
$sth->execute();

有关PDO访问网站http://php.net/manual/en/book.pdo.php

的详细信息