【发布时间】:2013-11-05 19:45:37
【问题描述】:
我收到此错误:
无效查询:您的 SQL 语法有错误;检查手册 对应于您的 MySQL 服务器版本以获得正确的语法 在第 1 行的 'INET_ATON('188.92.x.x')' 附近使用
尝试在数据库中插入 IP 地址时。列类型为:
'LastIP int(10) unsigned NOT NULL,'.
执行查询的函数是:
function onNewUser($ip, $hostname, $con)
{
$query = "INSERT INTO tableMachine (LastIP, LastHostName) VALUES ".
"INET_ATON('".mysql_real_escape_string($ip, $con)."'), ".
"'".mysql_real_escape_string($hostname, $con)."'";
$result= mysql_query($query, $con);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
}
我用参数调用这个函数:
$ip = $_SERVER['REMOTE_ADDR'];
$hostname = @gethostbyaddr($ip);
onNewUser($ip, $hostname, $con);
你们怎么了?
【问题讨论】:
-
阅读stackoverflow.com/a/60496/2864740 - 这将使代码更安全、更健壮、并且更容易查看实际 SQL 的样子。
-
mysql_*函数在 PHP 5.5 中已弃用。不建议编写新代码,因为它会阻止您将来升级。相反,请使用MySQLi_*或PDO