php 5.2.6的mysqli_stmt_get_result替代方案
作者:互联网
我不是php的专家,我开发了一个查询mysql db的小服务.
然而我用php 5.4开发,然后发现我的web托管计划有5.2.6,所以我对一些未定义的函数几乎没有问题.
具体来说,在这种情况下,如何解决>上可用的mysqli_stmt_get_result未定义函数? 5.3?这是代码:
$stmt = mysqli_prepare($con,$db_query);
if($stmt) {
mysqli_stmt_bind_param($stmt,'ss',$after,$lang);
mysqli_stmt_execute($stmt);
$result = mysqli_stmt_get_result($stmt); // <-- getting undefined error here !!!
$updated = array();
$deleted = array();
while($row = mysqli_fetch_assoc($result)) {
if($row['status']==1) {
array_push($updated,$row);
} else {
$cardName=$row['cardName'];
$cardStatus=$row['status'];
$cardId=$row['cardId'];
$language=$row['language'];
array_push($deleted,array(
'cardName'=>$cardName,
'status'=>$cardStatus,
'cardId'=>$cardId,
'language'=>$language
)
);
}
}
$response = array(
'cards'=>array(
'updated'=>$updated,
'deleted'=>$deleted
)
);
$json = json_encode($response);
mysqli_close($con);
echo $json;
}
关键是我正在使用准备好的声明,由于我缺乏PHP知识,我没有找到解决问题的其他方法而不重写整个脚本.
我认为你们中的一些人可能有一个简单易行的解决方案.
解决方法:
mysqli_stmt_get_result函数仅为PHP 5.3或更高版本.它不适用于您的PHP 5.2.x版本(不再支持btw.).
另一种方法是使用带有变量绑定的mysqli_stmt_bind_result
.
在您的具体示例中,这甚至带来了您不需要将数组成员分配给变量的好处,因为您可以直接绑定变量.
之所以引入mysqli_stmt_get_result函数,是因为someone thought会阻挡你,并且获得一个数组会更容易.
标签:php,mysql,mysqli,php-5-2 来源: https://codeday.me/bug/20190926/1819659.html