2010-02-12 86 views
0

環境1表現不同:工作PHP(5.2.4)的MySQL(5.1.30)
環境2:不工作PHP(5.2.6)的MySQL(4.1.25日誌)功能差異環境

這個功能是什麼使它在環境1中工作,而不是在環境2中工作?沒有錯誤,只是沒有返回任何東西。

function GetPrice($type, $level){ 
    $result = mysql_query("SELECT * FROM `types` WHERE id = '$type'") or trigger_error(mysql_error()); 
    while($row = mysql_fetch_array($result)){ 
     foreach($row AS $key => $value) { $row[$key] = stripslashes($value); } 
      $reg = $row['regprice']; 
      $nat = $row['natprice']; 
    } 

    if($level == "reg"){return $reg;} 
    if($level == "nat"){return $nat;} 

} 

我想,這事做與終端那裏,IM比較$level的字符串,但我不知道它應該是什麼樣的工作。

+0

你特有的和不一致的編碼風格並不能幫助你理解你想要的代碼。您是否期望只返回一行,還是隻想使用返回的最後一行?嘗試回顯一些查詢結果以查看它們是否符合您的期望。 – GZipp 2010-02-12 06:15:08

回答

1

您正在執行沒有ORDER BY子句的SELECT,因此您不能指望返回行的確定性順序。

實際上,針對不同版本的MySQL製作工作應用程序非常困難; 4.1很舊,請考慮儘快升級。

支持不同版本的PHP更加困難(它們經常會導致不兼容的更改)。

我假設您認爲這兩個環境具有相同的數據。構建一個測試用例,用已知數據演示你期望的輸出和你得到的輸出。發佈後,人們可能會告訴你想要做什麼。