数据库
首页 > 数据库> > php 5.2.6的mysqli_stmt_get_result替代方案

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