>  기사  >  백엔드 개발  >  PHP调用mysql函数报错

PHP调用mysql函数报错

WBOY
WBOY원래의
2016-06-13 11:50:54976검색

PHP调用mysql函数出错

  


    Book-O-Rama Search Result
  
  
    

Book-O-Rama Search Results


    
      $searchtype = $_POST['searchtype'];
      $searchterm = trim($_POST['searchterm']);
      if (!$searchtype || !$searchterm)
      {
        echo 'You have not entered search details. Please go back and try again.';
        exit;
      }
      
      if (!get_magic_quotes_gpc())
      {
        $searchtype = addslashes($searchtype);
        $searchterm = addslashes($searchterm);
      }
      
      $db = new mysqli('localhost', 'bookorama', 'bookorama123', 'books');
      if (mysqli_connect_error())
      {
        echo 'Error: Could not connect to database. Please try again later.';
        exit;
      }
      
      $db->select_db("books");
     
      //$query = "select * from books where ".$searchtype." like '%".$searchterm."%'"; 
      $query = "select * from books where ". $searchtype."="."'$searchterm'" ; 
      //$query = "select * from books"; 
      echo "$query\n";
          
      $result = $db->query($query);
      $num_results = $result->num_rows;
      echo "

Number of books found: ".$num_results."

";
      
      for ($i = 0; $i       { 
        /* 此段被注释的代码运行出错,错误在于$result->fetch_assoc();
        $result->fetch_assoc();
        echo "

".($i+1).". Title: ";
        echo htmlspecialchars(stripslashes($row['title']));
        
        echo "

Author: ";
        echo stripslashes($row['author']);
        
        echo "
ISBN: ";
        echo stripslashes($row['isbn']);
        
        echo "
Price: "; 
        echo stripslashes($row['price']);

        echo "

";
        */
        
        //下面的代码运行OK  
        $row = $result->fetch_row();
        
        echo "

".($i+1).". Title: ";
        echo htmlspecialchars(stripslashes($row[2]));
        
        echo "

Author: ";
        echo stripslashes($row[1]);
        
        echo "
ISBN: ";
        echo stripslashes($row[0]);
        
        echo "
Price: "; 
        echo stripslashes($row[3]);

        echo "

";
        
      }
      $result->free();
      $db->close();
    ?>



PHP新手。上面的php代码中,For循环实现了从结果集中取出一行数据。奇怪的是当把注释掉的代码打开,把运行OK的代码注释掉,就会出错。出错的地方就在于调用fetch_assoc()函数。那为什么调用fetch_row()函数没有呢?
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.