2010-02-12 61 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更加困难(它们经常会导致不兼容的更改)。

我假设您认为这两个环境具有相同的数据。构建一个测试用例,用已知数据演示你期望的输出和你得到的输出。发布后,人们可能会告诉你想要做什么。