我不是php专家,我开发了一个小型服务来查询mysql数据库。
但是,我使用php 5.4开发,然后发现我的虚拟主机计划具有5.2.6,因此对于一些未定义的函数,我遇到的问题很少。
具体来说,在这种情况下,如何解决> 5.3上可用的mysqli_stmt_get_result未定义函数?这是代码:
$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版本不存在(不再受支持)。
mysqli_stmt_get_result
替代方法是mysqli_stmt_bind_result与变量绑定一起使用。
mysqli_stmt_bind_result
在您的具体示例中,这甚至具有以下好处:您无需将数组成员分配给变量,因为您可以直接绑定变量。
mysqli_stmt_get_result之所以引入该函数,是因为有人认为这会妨碍您的工作,并且获取数组会更加容易。