doutou7549 2011-10-20 07:07
浏览 34
已采纳

PHP查询无法正常工作?

When I issue the following query in the mysql console for my database, I get the following:

mysql> SELECT ipaddr FROM ipposts WHERE ipaddr=2149856614;
+------------+
| ipaddr     |
+------------+
| 2149856614 |
| 2149856614 |
| 2149856614 |
+------------+
3 rows in set (0.00 sec)

However, the following codesnippet from my php:

$query = "SELECT ipaddr FROM ipposts WHERE ipaddr=2149856614";
$result = mysql_query($query);
$rows = mysql_num_rows($result);
if($rows == 0)
        return addIP($ip);

Calls addIP() everytime. Why is this?

EDIT I used mysql_error() to dump out one that I've never seen before "TABLE 'ipposts' was not locked with LOCK TABLES", I added a LOCK READ,WRITE and an UNLOCK in my function and now it works. I'm not sure why mysql wanted my to lock this in this function?

  • 写回答

3条回答 默认 最新

  • doudiejian5827 2011-10-20 07:10
    关注

    Did you try:

    $query = "SELECT ipaddr FROM ipposts WHERE ipaddr=2149856614";
    $result = mysql_query($query);    
    if ($result) {
        $rows = mysql_num_rows($result);
        if($rows == 0)
            return addIP($ip);
    }
    

    Anyway, because of you don't need to get records but only their count, you could use a different query:

    SELECT COUNT(ipaddr) FROM ipposts 
        WHERE ipaddr=2149856614
    

    and check if it's zero (result, not number of rows) or not

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 在获取boss直聘的聊天的时候只能获取到前40条聊天数据
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 有偿四位数,节约算法和扫描算法
  • ¥15 VUE项目怎么运行,系统打不开
  • ¥50 pointpillars等目标检测算法怎么融合注意力机制
  • ¥20 Vs code Mac系统 PHP Debug调试环境配置
  • ¥60 大一项目课,微信小程序
  • ¥15 求视频摘要youtube和ovp数据集