TN888
TN888

Reputation: 7739

Error in SQL INSERT INTO query

I have following code written in PHP:

  $q = mysql_query("INSERT INTO logowania ('user','udane','ip') VALUES ($uid,0,'".ip()."')"); echo mysql_error();

Values of $uid and ip() are correct, you can trust me.

Structure of logowania table:

1   idlogowania     int(11)             

2   user    int(11) 

3   udane   tinyint(1)  

4   data    timestamp       on update CURRENT_TIMESTAMP     CURRENT_TIMESTAMP   ON UPDATE CURRENT_TIMESTAMP     

5   ip  text    utf8_polish_ci  

I don't know where is the error in the statement. MySQL gives:

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 ''user','udane','ip') VALUES (1,0,'79.184.7.44')' at line 1

I tried to debug that, but without successful ending. I know that could be very simple mistake, but human's vision isn't infallible...

Upvotes: 0

Views: 63

Answers (3)

Artur
Artur

Reputation: 384

Alternative version:

$q = mysql_query("INSERT INTO logowania SET `user` = '" . $uid . "', `udane` = 0, `ip` = '" . ip() . "'"); echo mysql_error();

Upvotes: 0

Abhik Chakraborty
Abhik Chakraborty

Reputation: 44844

Take out '' from the column names.

$q = mysql_query("INSERT INTO logowania ('user','udane','ip') VALUES ($uid,0,'".ip()."')"); echo mysql_error();

should be

$q = mysql_query("INSERT INTO logowania (user,udane,ip) VALUES ($uid,0,'".ip()."')"); echo mysql_error();

OR use back-tics for the col names

$q = mysql_query("INSERT INTO logowania (`user`,`udane`,`ip`) VALUES ($uid,0,'".ip()."')"); echo mysql_error();

Upvotes: 1

Mihai
Mihai

Reputation: 26784

Use back ticks for column name,otherwise they are treated as strings.

(`user`,`udane`,`ip`)

Upvotes: 1

Related Questions