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 < $num_results; $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()函数没有呢?