mysqli_num_rows()期望参数1为mysqli_result,给定null

时间:2014-05-07 03:58:28

标签: php

收到此错误:

 mysqli_num_rows() expects parameter 1 to be mysqli_result, null given

不知道为什么并且已经浏览了很多主题,试图找出答案。我知道它与我的查询有关,但我不能把这些部分放在一起。

感谢您的帮助,我很感激!

<?php
session_start();
if (!isset($_SESSION['email'])){
     echo "Please login first.";
    exit();
}else{
include ("header.php");
require_once ('mysqli_connect.php');
$id=$_GET['id'];
$query = "SELECT * FROM post WHERE post_id=$id"; 
$result = @mysqli_query ($query);
$num = mysqli_num_rows($result);
if ($num > 0) { 
    while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){
?>
        <form action="update.php" method="post">
        <p>Title: <input name="title" size=50 value="<? echo $row['title']; ?>"></p>
        <p>Author: <input name="author" size=50 value="<? echo $row['author']; ?>"></p>
        <p>Post: <input name="post" size=50 value="<? echo $row['post']; ?>"></p>
        <p>
        <input type=submit value=update>
        <input type=reset value=reset>
        <input type=hidden name="post_id" value="<? echo $row['post_id']; ?      >">
        </form>
<?
    } 
} 
}
?>

3 个答案:

答案 0 :(得分:0)

$result = @mysqli_query ($query);行中@会消除任何错误。在继续操作之前,请检查$result不是falsenull或其他错误。

您可能希望在没有@之前使用它,直到您使用它,这样您就可以获得更有意义的错误消息。

答案 1 :(得分:0)

第一件事是在最后一节中,代码没有正确的意图......如value="<? echo $row['post_id']; ? ..其次,当乔说@符号会出现错误时......所以你需要删除那些来自你代码的@symbol ..所以代码必须是..

<?php

session_start();

if (!isset($_SESSION['email'])){

 echo "Please login first.";

exit();

}else{

include ("header.php");

require_once ('mysqli_connect.php');

$id=$_GET['id'];

$query = "SELECT * FROM post WHERE post_id=$id"; 

$result = mysqli_query ($query);

$num = mysqli_num_rows($result);

if ($num > 0) { 

while ($row = mysqli_fetch_array($result, MYSQL_ASSOC)){

?>

    <form action="update.php" method="post">
    <p>Title: <input name="title" size=50 value="<? echo $row['title']; ?>"></p>
    <p>Author: <input name="author" size=50 value="<? echo $row['author']; ?>"></p>
    <p>Post: <input name="post" size=50 value="<? echo $row['post']; ?>"></p>
    <p>
    <input type=submit value=update>
    <input type=reset value=reset>
    <input type=hidden name="post_id" value="<? echo $row['post_id']; ?>">
    </form>

希望这一个可以帮助你..如果有任何问题,请在下面发表评论.. :)

答案 2 :(得分:0)

我认为您必须检查GET [&#39; id&#39;]的值是否具有值,并且使用适当的数据形成查询。 您可能会收到错误,因为结果为null。 并检查连接。