mysqli_num_rows()期望参数1是mysqli_result,boolean with mysqli

时间:2018-05-27 03:16:34

标签: php mysqli

我无法收到警告 sql查询正在运行,mysqli_query()返回1,每次我的数据库也在更新。有什么问题?

  

警告:mysqli_num_rows()要求参数1为mysqli_result,第55行的C:\ xampp \ htdocs \ qq \ index.php中给出布尔值

的代码

<?php
 try{
  $host="localhost";

 $user="deb";
 $password="12345";
 $database="1";
 $conn=mysqli_connect($host,$user,$password,$database);
 if (mysqli_connect_errno())
 {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
 }
 echo "connected succesfully";
   }catch(Exception $e){
 echo $e->getMessage();
 }
 $select=mysqli_select_db($conn,$database);
 if($select)
  {
  echo "yipee";
  }

echo "<table>
<thead>
<tr>
    <th>Id</th>
    <th>Value</th>
    <th>Threshold Value</th>
    <th>Chances of Fire</th>
</tr>
</thead>";
$val=$_GET["val"];

错误在此代码中:

$tval=$_GET["tval"];
 if ($val<$tval) {
 $res="less ";
 }
else{$res="exreme ";}
$sql1="INSERT INTO sensor (val,tval,result) VALUES 
('".$val."','".$tval."','".$res."')"; 
 $que=mysqli_query($conn,$sql1);
 if($que)
  {
  if(mysqli_num_rows($que))
   {
    while ($data=mysqli_fetch_array($que))
     {
    echo "<tr>";
    echo "<td>".$data['id']."</td><td>".$data['val']."/td> 
       <td>".$data['tval']."</td><td>".$data['result']."</td>";
    echo"</tr>";
     }
   }

   else{
      echo "nooooooo";
        } 
      }     
      echo"</table>"
        ? >

即使我正在删除mysqli_num_rows上的显示错误

2 个答案:

答案 0 :(得分:1)

根据另一个问题Hardware Security Module

INSERT命令将返回一个布尔值(true / false),所以你必须使用select命令来获得所需的结果

答案 1 :(得分:1)

您获得的错误是因为INSERT查询失败,因此mysqli_query()返回false以指示查询失败。成功的查询将返回一个mysqli_result()对象。检查$ sql1的内容是否有语法错误。

您可以在插入查询后使用mysqli_error()来获取MySQL返回的错误。

不过,您对SQL注入攻击持开放态度! $ tval的值直接来自用户,没有任何尝试验证或消毒它!你应该使用准备好的陈述。