无法在基本电子邮件跟踪像素中找到SQL语法错误

时间:2012-11-14 23:25:58

标签: php mysql sql

我正在尝试设置一个非常简单的电子邮件跟踪像素...事实证明它不像我原先预期的那么简单。

我的服务器正在运行linux和mysql v.5.1.65

<?php

$username = '*******';
$db_password = '*******';
$database = '*******';

$IP = $_SERVER['REMOTE_ADDR'];

$CAMPAIGN = $_GET['MID'];

mysql_connect('localhost',$username,$db_password);
@mysql_select_db($database) or die( "Unable to select database");

mysql_query("INSERT INTO email_table VALUES ('$CAMPAIGN', '$IP',)") or die(mysql_error() );
mysql_close();
exit;
?>

我得到了: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以便在第1行的')'附近使用正确的语法

1 个答案:

答案 0 :(得分:2)

最后你似乎有一个额外的逗号:

INSERT INTO email_table VALUES ('$CAMPAIGN', '$IP',)

尝试:

INSERT INTO email_table VALUES ('$CAMPAIGN', '$IP')
顺便说一句,我不会过多地判断您的代码,但通过IP跟踪人员并不是非常可靠。例如,公司防火墙后面的很多企业流量都可以使用相同的IP地址。

此外,$CAMPAIGN似乎来自HTTP帖子,如果您不是parameterizing your SQL,这可能是一个安全问题。