0
我想創建一段代碼,它將通過查找從我的數據庫返回的最大值使用PDO聲明。PHP從Assoc數組中獲取字符串值,並將其轉換爲字符串進行比較
我遇到的問題是我無法將我的assoc數組中返回的值轉換爲整數值,我做錯了什麼? PDO語句
$maxHGPM = $connection->prepare("SELECT MAX(high_gpm) FROM pumps WHERE pump_type = :pType AND pump_category = :cVal");
$maxHGPM->bindParam(':pType', $pType, PDO::PARAM_STR);
$maxHGPM->bindParam(':cVal', $cVal, PDO::PARAM_STR);
$maxHGPM->execute();
$res3 = $maxHGPM->fetch(PDO::FETCH_ASSOC);
$maxFGPM = $connection->prepare("SELECT MAX(flow_gpm) FROM pumps WHERE pump_type = :pType AND pump_category = :cVal");
$maxFGPM->bindParam(':pType', $pType, PDO::PARAM_STR);
$maxFGPM->bindParam(':cVal', $cVal, PDO::PARAM_STR);
$maxFGPM->execute();
$res4 = $maxFGPM->fetch(PDO::FETCH_ASSOC);
測試代碼和整數轉換
// TEST CURRENT SET VALUES
var_dump($res1);
var_dump($res2);
var_dump($res3);
var_dump($res4);
// INTEGER CONVERSION
$psiA = (integer) array_keys($res1)[0];
var_dump($psiA);
// PERFORM LOGICAL COMPARISONS
if(array_keys($res1)[0] >= array_keys($res2)[0]){
$psiOut = $res1;
} else {
$psiOut = $res2;
}
if(array_keys($res3)[0] >= array_keys($res4)[0]){
$gpmOut = $res3;
} else {
$gpmOut = $res4;
}
var_dump($psiOut);
var_dump($gpmOut);
當代碼運行由$ PSIA傾倒的值是0,我缺少用於可變變換的步驟(I的
實施例PHP相當新)
什麼的'的var_dump輸出($ RES1) ;'? – rgin
http://gyazo.com/a9c9218605b1ec04b9b8c0741e4ac7c3 - 這裏你可以看到所有的轉儲輸出 - $ res1具體是'MAX(high_psi)'=>字符串'14406'(長度= 5) – Alex
該截圖看起來好像它正在工作按照預期,但在這裏,你可以看到邏輯比較是inccorect http://gyazo.com/13c52c76c9ac75303256d28b207b7605我認爲它目前比較它的字符串長度 – Alex