首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用mysqli_num_rows而不是mysql_num_row

使用mysqli_num_rows而不是mysql_num_row
EN

Stack Overflow用户
提问于 2014-03-19 09:35:52
回答 4查看 430关注 0票数 0

我已经搜索过问题,但是我不能解决这个代码,我看到了这个错误:

警告: mysqli_num_rows()期望参数1为mysqli_result,在第13行的C:\ProgramFiles\EasyPHP\www\test\index.php中给出布尔值

这是我的PHP代码:

代码语言:javascript
复制
<?php
$user_ip = $_SERVER['REMOTE_ADDR'];
function ip_exists($ip) {
    $con = mysqli_connect("localhost","root","","ok");
    if (mysqli_connect_errno()) {
      echo "Failed to connect to MySQL: " . mysqli_connect_error();
      }
    global $user_ip;
    $query = "SELECT ip FROM hits_ip WHERE ip = $user_ip";
    $query_run = mysqli_query($con,$query);
    $query_num_rows = mysqli_num_rows($query_run);

    if ($query_num_rows==0) {
        return false ; 
    }
    else if($query_num_rows>=1) {
        return true ;
    }
}
if (ip_exists($user_ip)) {
    echo "EXIST";
}
else {
echo "NO ex";
}
?> 

问题是什么,我应该怎么做?

我想用mysqli。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-03-19 09:41:13

SQL查询中有错误。这就是为什么mysqli_query()不返回mysqli_result,而是返回bool的原因。运行mysqli_error($con)。这会给你一个错误的描述。在本例中,查询中$user_ip变量周围缺少引号。这应该是正确的:

代码语言:javascript
复制
$query = "SELECT ip FROM hits_ip WHERE ip = '$user_ip'";
票数 3
EN

Stack Overflow用户

发布于 2014-03-19 09:39:34

尝试:

代码语言:javascript
复制
$query = "SELECT ip FROM hits_ip WHERE ip = '" . $user_ip . '"";

在搜索ip时缺少单引号,尽管您的查询似乎很奇怪,因为您正在检索的ip与您所搜索的完全相同。在这种情况下,为什么不直接使用$user_ip呢?

票数 2
EN

Stack Overflow用户

发布于 2014-03-19 09:46:34

您应该删除全局$user_ip;

函数接受全局$user_ip,而不是函数头中传递的参数。

同时,无论是否有报价,海事组织都应该有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22501526

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档