user3155074
user3155074

Reputation: 1161

wrong query inserting value in specific row

I'm trying to execute the following query where I want to add a value in the column firstime in the corresponding row with $netid and 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));

when I try I get the following error message:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE netid='28' AND mac='24:A4:3C:40:4D:EB' (firstime) VALUES ('2014-01-16 12:0' at line 1

Any Idea??

Upvotes: 0

Views: 44

Answers (3)

digitai
digitai

Reputation: 1842

The WHERE conditions must go at after the colums and values declaration.

INSERT INTO node  (firstime) VALUES ('" . $firstcheck . "') WHERE netid='".$netid."'    
AND mac='" . $_GET['mac'] . "'";

Also use prepared statements and sanitize user submitted data, in order to prevent a SQL INJECTION which is a present and clear threaten.

Upvotes: 0

Gordon Linoff
Gordon Linoff

Reputation: 1271191

Perhaps you want an update:

update node
    set firsttime = '" . $firstcheck . "'
    WHERE netid = '".$netid."' AND mac = '" . $_GET['mac'] . "';

insert inserts a new row into the table, not a new value into the row.

update updates a value in a row.

Upvotes: 0

zerkms
zerkms

Reputation: 255155

You cannot use WHERE clause for INSERT query since it makes no sense

Here is a documentation page about its proper syntax: http://dev.mysql.com/doc/refman/5.6/en/insert.html

A scientific guess: what you need is UPDATE

Upvotes: 5

Related Questions