0

我使用此代码记录 $_SERVER['REMOTE_ADDR']; 对于我的小数据库,我的问题是从未保存到数据库的值,无法弄清楚我在代码中遗漏了什么

有小费吗 ?

 <?php

 mysql_connect("localhost", "usr", "passwd");
 mysql_select_db("db") or die ( 'Can not select database' );

 function initCounter() {
  $ip = $_SERVER['REMOTE_ADDR'];
  $sql = "INSERT INTO logs(REMOTE_ADDR,) VALUES ('$ip')";
  }
   echo $_SERVER['REMOTE_ADDR'];

   ?>
4

3 回答 3

1

这应该有效。除了此处的其他评论外,您的查询中的逗号 (,) 过多。

<?php
mysql_connect("localhost", "usr", "passwd");
mysql_select_db("db") or die ( 'Can not select database' );

function initCounter() {
    $ip = $_SERVER['REMOTE_ADDR'];
    $sql = "INSERT INTO logs (REMOTE_ADDR) VALUES ('$ip')";
    mysql_query($sql);
}

initCounter();
?>
于 2012-06-19T11:37:00.160 回答
0
  • 您实际上并没有执行查询。您创建 SQL 但不使用mysql_query($sql)

  • REMOTE_ADDR,您在 SQL <-- 中此时有一个逗号

  • 执行查询时,用于mysql_error()测试错误消息(并检查mysql_query()boolean的结果false

最后我建议切换到 MySQLi 或 PDO。

于 2012-06-19T11:15:59.787 回答
0

如果那是您的完整代码...缺少一件事您实际上需要执行查询...

mysql_query($sql);

编辑:

我刚刚注意到,您正在连接到试图运行查询的函数的 DB OUTSIDE ......显然它会在函数内部失败,它不知道 DB 连接。

于 2012-06-19T11:16:39.303 回答