我已经搜索过问题,但是我不能解决这个代码,我看到了这个错误:
警告: mysqli_num_rows()期望参数1为mysqli_result,在第13行的C:\ProgramFiles\EasyPHP\www\test\index.php中给出布尔值
这是我的PHP代码:
<?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。
发布于 2014-03-19 09:41:13
SQL查询中有错误。这就是为什么mysqli_query()不返回mysqli_result,而是返回bool的原因。运行mysqli_error($con)。这会给你一个错误的描述。在本例中,查询中$user_ip变量周围缺少引号。这应该是正确的:
$query = "SELECT ip FROM hits_ip WHERE ip = '$user_ip'";发布于 2014-03-19 09:39:34
尝试:
$query = "SELECT ip FROM hits_ip WHERE ip = '" . $user_ip . '"";在搜索ip时缺少单引号,尽管您的查询似乎很奇怪,因为您正在检索的ip与您所搜索的完全相同。在这种情况下,为什么不直接使用$user_ip呢?
发布于 2014-03-19 09:46:34
您应该删除全局$user_ip;
函数接受全局$user_ip,而不是函数头中传递的参数。
同时,无论是否有报价,海事组织都应该有效。
https://stackoverflow.com/questions/22501526
复制相似问题