作者:手机用户2502858281 | 来源:互联网 | 2023-05-19 19:03
今天,用php的mysqli方式连接数据库,连接上了,代码却不能自动提示,无法知道mysqli::query()的返回值,看手册,提示如下:失败时返回FALSE,通过mysqli_qu
今天,用php 的mysqli方式连接数据库,连接上了,代码却不能自动提示,无法知道mysqli::query()的返回值,看手册,提示如下:
失败时返回 FALSE
,通过 mysqli_query() 成功执行SELECT, SHOW, DESCRIBE或EXPLAIN查询会返回一个mysqli_result 对象,其他查询则返回TRUE
。
最后通过如此写法,代码就可以提示:
$strsql = "select id, symbol,sign,planet,element from zodiac";
$result = $mysqliObj->query ( $strsql );
if($result instanceof mysqli_result)
{
}
从上看出,$result的返回值有三种,true,false,与
mysqli_result,因此当返回结果的类型为
mysqli_result时,开发工具才知道类型,也才会自动提示,否则无法知悉类型的结果,开发工具也无法提示,以图为证!
接下来有遇到另一个问题,如何取值,$result有三种方法可以取到值:fetch_array(),fetch_assoc(),fetch_object(),这三个方法的使用请看手册
请注意是FETCH,也就是一个一个取值,所以要用while语句,运行完毕后$result就没有值了,这里不能用foreach(个人认为)。
所以我这样写:
$strsql = "select id, symbol,sign,planet,element from zodiac";
$result = $mysqliObj->query ( $strsql );
if ($result instanceof mysqli_result) {
echo "the query return a result!". "
";
while ( $row = $result->fetch_object() ) {
echo "id:" . $row->id . " symbol:" . $row->symbol . " sign:" . $row->sign . "
";
}
}
$result1=$mysqliObj->query ( $strsql );
while ( $row = $result1->fetch_array() ) {
echo "id:" . $row[0] . " symbol:" . $row[1] . " sign:" . $row[2] . "
";
}
$result2=$mysqliObj->query ( $strsql );
while ( $row = $result2->fetch_assoc() ) {
echo "id:" . $row ["id"] . " symbol:" . $row ["symbol"] . " sign:" . $row ["sign"] . "
";
}