SQL INSERT INTO查询出错

时间:2014-02-22 20:40:20

标签: php sql

我有以下用PHP编写的代码:

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

$uidip()的值是正确的,您可以相信我。

logowania表的结构:

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  

我不知道声明中的错误在哪里。 MySQL给出了:

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   靠近''user','udane','ip')第1行的VALUES(1,0,'79 .184.7.44')'

我试图调试,但没有成功结束。我知道这可能是一个非常简单的错误,但人类的愿景并非绝对正确......

3 个答案:

答案 0 :(得分:1)

对列名称使用返回刻度,否则将它们视为字符串。

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

答案 1 :(得分:1)

从列名中取出'。

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

应该是

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

或者使用back-tics作为col名称

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

答案 2 :(得分:0)

替代版本:

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