从php中的select语法打印数组值

时间:2017-10-03 20:38:42

标签: php sql

我有一个数据库,里面有4条记录。我想显示其中有reg_no =“IT17052498”的记录详细信息(我已经在数据库中记录了该记录)。但它给出了错误,如

“警告:mysqli_fetch_array()要求参数1为mysqli_result,在第85行的C:\ xampp \ htdocs \ labsheet 10 \ addcomment.php中给出布尔值”

数据库连接如名称(db_connect.php)

<?php
$hostname = "localhost";
$username = "root";
$password = "";

$mysql_db = "iwt";

$connection = mysqli_connect($hostname,$username,$password,$mysql_db);
if(!$connection)
{
die("Error : ".mysqli_error($connection));
}

else
{
echo "Successfully Connected!<br>";
}
?>

这是我的PHP代码..

<html>

<body>
<table border="1">
<tr>
<th>Registration Number</th>
<th>Student Name</th>
<th>Comment on ITA</th>
</tr>
<?php
if(isset($_POST["btn_search"]))
$srch = $_POST["search"];
$query = "SELECT * FROM  library_comment WHERE regNo = $srch";

$exst = mysqli_query($connection,$query);
while($row = mysqli_fetch_array($exst))
{

?>

<tr>
<td><?php echo $row['regNo'] ?></td>
<td><?php echo $row['name'] ?></td>
<td><?php echo $row['comment'] ?></td>
</tr>

<?php
}

?>


</table>
</body>

1 个答案:

答案 0 :(得分:1)

我甚至不使用PHP,但错误消息显示问题出现在调用mysqli_fetch_array()的第一个参数中:

mysqli_fetch_array($exst)

具体来说,$exst应该是mysqli_result个对象,但它实际上是booleantruefalse)。

$exst来自这一行:

$exst = mysqli_query($connection,$query);

http://php.net/mysqli_query说:

  

失败时返回FALSE。要成功 SELECT SHOW DESCRIBE EXPLAIN 查询mysqli_query()将返回mysqli_result对象。

换句话说,mysqli_query失败并返回false,并且您的代码没有检查错误,它只是假设一切正常。这是您问题的直接来源。

另一方面,文档也说

  

查询中的数据应为properly escaped

您的代码无法逃避任何事情。这可能是查询失败的原因。