問題描述
我不是php專家,我開發(fā)了一個(gè)查詢mysql數(shù)據(jù)庫(kù)的小服務(wù).
I am not an expert of php, I developed a small service which query a mysql db.
但是我用 php 5.4 開發(fā),然后發(fā)現(xiàn)我的虛擬主機(jī)計(jì)劃有 5.2.6,所以我對(duì)一些未定義的函數(shù)幾乎沒有問題.
However I developed with php 5.4, and then discovered that my web hosting plan has 5.2.6, so I am having few problems with some undefined function.
具體來說,在這種情況下,如何解決 > 5.3 上可用的 mysqli_stmt_get_result 未定義函數(shù)?代碼如下:
Specifically, in this case, how can I solve the mysqli_stmt_get_result undefined function available on > 5.3 ? Here is the code:
$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;
}
關(guān)鍵是我使用的是準(zhǔn)備好的語(yǔ)句,由于我缺乏 php 知識(shí),我發(fā)現(xiàn)沒有其他方法可以在不重寫整個(gè)腳本的情況下解決問題.
The point is that I am using a prepared statement, due to my lack of php knowledge I found no other way of resolving the issue without rewriting the whole script.
我認(rèn)為你們中的一些人可能有一個(gè)簡(jiǎn)單易行的解決方案.
I thought that some of you may have a simple and easy solution.
推薦答案
mysqli_stmt_get_result
函數(shù)僅適用于 PHP 5.3 或更高版本.您的 PHP 5.2.x 版本不存在它(順便說一句,不再支持該版本).
The mysqli_stmt_get_result
function is PHP 5.3 or greater only. It does not exist for your PHP 5.2.x version (which is not supported any longer btw.).
另一種方法是使用帶有變量綁定的 mysqli_stmt_bind_result
.
The alternative is to use mysqli_stmt_bind_result
with variable bindings.
在您的具體示例中,這甚至具有您不需要將數(shù)組成員分配給變量的好處,因?yàn)槟梢灾苯咏壎ㄗ兞?
In your concrete example this has even the benefit that you do not need to assign the array members to variables, because you can bind the variables directly.
引入mysqli_stmt_get_result
函數(shù)是因?yàn)橛腥苏J(rèn)為 這會(huì)妨礙您并且獲取數(shù)組會(huì)更容易.
The mysqli_stmt_get_result
function was introduced because someone thought this would stand in your way and getting an array would have been easier.
這篇關(guān)于php 5.2.6 的 mysqli_stmt_get_result 替代方案的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!