ホームページ  >  記事  >  バックエンド開発  >  PHP がデータベース データをクエリすると例外が発生する

PHP がデータベース データをクエリすると例外が発生する

WBOY
WBOYオリジナル
2016-06-13 13:42:57855ブラウズ

PHP がデータベース データをクエリしているときにエラーが発生しました
PHP がデータベース Books の Books テーブルをクエリしているときに次のエラーが発生しました。

注意: D:wampApachehtdocsphpresults.php の行 33 で非オブジェクトのプロパティを取得しようとしています

致命的なエラー: D の非オブジェクトに対するメンバー関数 fetch_assoc() の呼び出し: wampApachehtdocsphpresults.php の 35 行目


コードは次のとおりです。

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->
<html>
    <head>
        <title> Book-O-Rama Catalog Search</title>
    </head>
    <body>
        <h1>Book-O-Rama Catalog Search</h1>
<?php
    //create short variable names
    $searchtype=$_POST['searchtype'];
    $searchterm=trim($_POST['searchterm']);    
    
    if (!$searchtype || !$searchterm)    {
        exit('You have not entered search detais,please go back again');
    }
     
    if (!get_magic_quotes_gpc()){    
        
        $searchtype=addslashes($searchtype);
        $searchterm=addslashes($searchterm);
    }
    
    
    @ $db=new mysqli('localhost','root','password','books');
    
    if (mysqli_connect_errno()){
        echo "could not connect to database,please try again later.".mysqli_connect_errno();
        exit;
    }else {  
        $sql ="select * from books where".$searchtype."like'%".$searchterm."%'";
    
        $result=$db->query($sql);
        $num_result=$result->num_rows;
        for ($i=0;$i<=$num_result;$i++){
            $row=$result->fetch_assoc();
            echo "<p>".($i+1)."title:";
            echo htmlspecialchars(stripslashes($row['author']));
            echo "Author:".stripslashes($row->newsauthor);
            echo "ISBN:".stripslashes($row->newsISBN);
            echo "price:".stripslashes($row->newsprice)."</p>";
        }
    }

    $result->free();
    $db->colse();
?>
    </body>
</html>



Weiwei Prawn は、上記の問題!

-----解決策---------
PHP コード

$sql ="「.$searchtype.」が '%" のような書籍から * を選択します。$searchterm."%'";

        if ($result=$db->query($sql)) {
            $num_result=$result->num_rows;
            for ($i=0;$ifetch_assoc();
                echo "<p>".($i+1)."title:";
                echo htmlspecialchars(stripslashes($row['author']));
                echo "著者:".stripslashes($row->newsauthor);
                echo "ISBN:".stripslashes($row->newsISBN);
                echo "price:".stripslashes($row->newsprice)."</p>";
            }
        }それ以外{
            エコー「失敗」;
            出口;
        <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。