我试图执行以下查询,我想在相应行的第一列中使用$ netid和mac添加值。
$query="INSERT INTO node WHERE netid='".$netid."' AND mac='" . $_GET['mac'] . "' (firstime) VALUES ('" . $firstcheck . "')";
mysql_query($query, $conn) or die("Error executing query: ".mysql_error($conn));
当我尝试时收到以下错误消息:
您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#< neffd =' 28'附近使用正确的语法。 AND mac =' 24:A4:3C:40:4D:EB' (第一次)价值观(' 2014-01-16 12:0'第1行
任何想法?
答案 0 :(得分:5)
您不能对WHERE
查询使用INSERT
子句,因为它没有意义
以下是有关其正确语法的文档页面:http://dev.mysql.com/doc/refman/5.6/en/insert.html
科学猜测:您需要的是UPDATE
答案 1 :(得分:0)
也许你想要一个update
:
update node
set firsttime = '" . $firstcheck . "'
WHERE netid = '".$netid."' AND mac = '" . $_GET['mac'] . "';
insert
在表中插入一个新行,而不是该行中的新值。
update
更新一行中的值。
答案 2 :(得分:0)
WHERE 条件必须在colums和values声明后进行。
INSERT INTO node (firstime) VALUES ('" . $firstcheck . "') WHERE netid='".$netid."'
AND mac='" . $_GET['mac'] . "'";
还要使用预备语句并清理用户提交的数据,以防止 SQL INJECTION 这是一个存在且明确的威胁。