所以我有这个函数add_log
:
function add_log($username, $action) {
$l_con = new con();
$log_action = $l_con->connect();
// IP to put in database
$ip_orig = $this->getIP();
$newa_ip = ip2long($ip_orig);
$prepara = $log_action->query("INSERT INTO log VALUES ('$username',
'$action', '$newa_ip', CURDATE(), NOW())");
}
当我在我的注册表单中使用它时,它完美地工作并插入到数据库中。但是在登录脚本或其他任何地方它都不起作用。我什至尝试输入我确定没有使用过的奇怪名字。我尝试在登录脚本之外使用它,但仍然一无所获。
最佳答案
首先,您在 SQL 语句中缺少可选的列声明。通常你会将它们定义为:
INSERT INTO table (COLUMN1, COLUMN2, COLUMNN) VALUES ('a', 'b', 'n...');
此外,在使用 ip2long
时,请注意还有一个替代方案,您可以直接在 SQL 语句中执行此操作:
INSERT INTO log VALUES ('$username', '$action', INET_ATON('$new_ip'), CURDATE(), NOW())
要检索,您可以执行 long2ip
或在您的 SQL 中,SELECT INET_NTOA(IP) as IP ...
关于php - 功能有时只工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597422/