Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/233.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php 5.2.6的mysqli_stmt_get_结果替代方案_Php_Mysql_Mysqli_Php 5.2 - Fatal编程技术网

php 5.2.6的mysqli_stmt_get_结果替代方案

php 5.2.6的mysqli_stmt_get_结果替代方案,php,mysql,mysqli,php-5.2,Php,Mysql,Mysqli,Php 5.2,我不是php专家,我开发了一个查询mysql数据库的小服务 然而,我用PHP5.4开发,然后发现我的web托管计划有5.2.6,所以我对一些未定义的函数没有什么问题 具体来说,在这种情况下,如何解决>5.3上提供的mysqli_stmt_get_result undefined函数?代码如下: $stmt = mysqli_prepare($con,$db_query); if($stmt) { mysqli_stmt_bind_param($stmt,'ss',$afte

我不是php专家,我开发了一个查询mysql数据库的小服务

然而,我用PHP5.4开发,然后发现我的web托管计划有5.2.6,所以我对一些未定义的函数没有什么问题

具体来说,在这种情况下,如何解决>5.3上提供的mysqli_stmt_get_result undefined函数?代码如下:

  $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;

  }
$stmt=mysqli\u prepare($con,$db\u query);
如果($stmt){
mysqli_stmt_bind_param($stmt,'ss',$after,$lang);
mysqli_stmt_execute($stmt);
$result=mysqli\u stmt\u get\u result($stmt);/$cardName,
“状态”=>$cardStatus,
“卡迪德”=>卡迪德美元,
“语言”=>$language
)
);
}
}
$response=array(
“卡片”=>阵列(
“已更新”=>$updated,
“已删除”=>$deleted
)
);
$json=json_encode($response);
mysqli_close($con);
echo$json;
}
关键是,我使用的是一个预先准备好的语句,由于我缺乏php知识,我没有找到其他方法来解决这个问题而不重写整个脚本


我想你们中的一些人可能有一个简单易行的解决方案。

mysqli\u stmt\u get\u result函数仅为PHP5.3或更高版本。您的PHP5.2.x版本(顺便说一句,该版本不再受支持)不存在

另一种方法是与变量绑定一起使用

在您的具体示例中,这甚至有一个好处,即您不需要将数组成员分配给变量,因为您可以直接绑定变量


引入了
mysqli\u stmt\u get\u result
函数,因为这会妨碍您的工作,而且获取数组会更容易。

也有类似的问题。顺便说一句,mysqlnd在5.3版本中可用,但它必须在中编译。5.4,它默认在那里

在我的例子中,我能够保留大部分代码,并通过替换以下代码使其正常工作

$result = mysqli_stmt_get_result($stmt); // <-- doesn't work without mysqlnd
while($row = mysqli_fetch_assoc($result)) {
    $cardName=$row['cardName'];
    ...
}

$result=mysqli\u stmt\u get\u result($stmt);// 如果您处于不允许添加mysqlnd的情况下,这将显示如何在没有mysqli_stmt_get_result()的情况下将数据获取到关联数组中。

Related:and.我最终使用了mysqli\u stmt\u bind\u结果。但是我的字段很少,所以我不得不多写几行。我希望有更干净的东西。不过,我不明白为什么提供商不升级到最新的软件版本!!我读的是5.2.x,比2008年老!
$stmt->bind_result($dbCardId, $dbCardName);  // <-- one param for each field returned
while ($stmt->fetch()) {
    $cardName = $dbCardName;
    ...
}