我有以下用PHP编写的代码:
$q = mysql_query("INSERT INTO logowania ('user','udane','ip') VALUES ($uid,0,'".ip()."')"); echo mysql_error();
$uid
和ip()
的值是正确的,您可以相信我。
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')'
我试图调试,但没有成功结束。我知道这可能是一个非常简单的错误,但人类的愿景并非绝对正确......
答案 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();