代码之家  ›  专栏  ›  技术社区  ›  mrpatg

函数在不同环境中的行为不同

  •  0
  • mrpatg  · 技术社区  · 15 年前

    环境1:工作php(5.2.4)mysql(5.1.30)
    环境2:不工作的php(5.2.6)mysql(4.1.25-log)

    这个函数在环境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;}
    
    }
    

    我觉得这和我比较的结尾有关系 $level 但我不知道该怎么做。

    1 回复  |  直到 15 年前
        1
  •  1
  •   MarkR    15 年前

    您正在执行一个没有ORDER BY子句的SELECT,因此不能期望返回具有确定性的行顺序。

    在实践中,很难针对不同版本的MySQL开发出一个有效的应用程序;4.1版本非常老,请考虑尽快升级。

    支持不同版本的PHP更加困难(它们经常进行不兼容的更改)。

    我假设您相信这两个环境具有相同的数据。构造一个测试用例,用已知的数据演示您期望的输出和获得的输出。贴出来,这样人们就可以知道你想做什么。