错误的查询在特定行中插入值

时间:2014-01-22 23:37:29

标签: php mysql

我试图执行以下查询,我想在相应行的第一列中使用$ 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行

任何想法?

3 个答案:

答案 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 这是一个存在且明确的威胁。