-6

我正在尝试设置一个非常简单的电子邮件跟踪像素……事实证明它没有我最初预期的那么简单。

我的服务器正在运行 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 行的 ')' 附近使用正确的语法

4

1 回答 1

2

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

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

尝试:

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

顺便说一句,我不会过多地判断您的代码,但通过 IP 跟踪人员并不是很可靠。例如,公司防火墙后面的大量公司流量可以使用相同的 IP 地址。

此外,它看起来$CAMPAIGN来自 HTTP 帖子,如果您没有参数化 SQL ,这可能是一个安全问题。

于 2012-11-14T23:27:51.877 回答