[英]Converting from php mysql to mysqli mysqli_fetch_array
我正在將程序從mysql庫轉換為mysqli。
編輯:更多上下文
我有以下代碼調用一個類
case "purchasing";
$tab = 'purchasing';
require $classes . 'purchasing.php';
$purchases = new Purchase_list($search_term, $scope);
require $templates . 'header.php';
require $templates . 'purchasing.php';
break;
下面包含get_result的類是Purchase_list Purchase list基本上可以確定要從數據庫檢索的行,運行查詢並將結果分配給$ this-> result
由於我得到了有效的結果,因此該部分顯然正在工作。 然后$ templates。 'purchasing.php'; 顯示這些結果。
為了解決問題,purchasing.php僅包含
while ($row = $purchases->get_result()) {
}
我在一個類中有一個函數,看起來像這樣
function get_result() {
$results = mysqli_fetch_array($this->result);
if($results === FALSE) {
return false;
}else {
$results['OPENAMT'] = ($results['Puramt'] - $results['Recamt']);
return $results;
}
}
如果我注釋掉$ results ['OPENAMT']代碼,則一切正常,如果未注釋該代碼,則會使瀏覽器請求超時。 此代碼與mysql擴展而不是mysqli一起使用
任何人都可以闡明這里實際發生的一切。
$ results上的var_dump,然后嘗試返回給定
array(11) {
[0]=> string(5) "23074"
["Purno"]=> string(5) "23074"
[1]=> string(3) "AEC"
["Vendno"]=> string(3) "AEC"
[2]=> string(10) "11/28/2012"
["Purdate"]=> string(10) "11/28/2012"
[3]=> string(4) "0.00"
["Puramt"]=> string(4) "0.00"
[4]=> string(4) "0.00"
["Recamt"]=> string(4) "0.00"
["OPENAMT"]=> float(0)
}
我不完全知道您為什么會遇到此問題,但我希望這會有所幫助。
當沒有更多行mysqli_fetch_arrays
時, mysql_fetch_array
返回FALSE
,而mysqli_fetch_arrays
返回NULL
。
因此$results
永遠不會=== FALSE
,並且您總是會進入else
塊,並且可能會在發出警告的情況下返回一些垃圾。
結果,調用get_result()
的while
循環get_result()
因為它變得false
而不是獲取, 我不知道是什么 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.