PHP新手试图理解如何在php5中使php4脚本等效

PHP新手试图理解如何在php5中使php4脚本等效,php,porting,php4,Php,Porting,Php4,我是php的新手,所以如果这封邮件听起来像,请原谅我,嗯。。。哑的我正在尝试为我的老板移植一些php4代码。这是一个让我感到困惑的函数 function dbank($table,$sql,$dbankoverride="",$dbconfig="") { if(empty($dbconfig)) $dbconfig="0"; $dbhostconfig[0]="XXXX"; $dbuserconfig[0]="XXXX"; $dbpasswdconfig[0

我是php的新手,所以如果这封邮件听起来像,请原谅我,嗯。。。哑的我正在尝试为我的老板移植一些php4代码。这是一个让我感到困惑的函数

 function dbank($table,$sql,$dbankoverride="",$dbconfig="") {
    if(empty($dbconfig)) $dbconfig="0";

    $dbhostconfig[0]="XXXX";
    $dbuserconfig[0]="XXXX";
    $dbpasswdconfig[0]="XXXX";
    $dbankconfig[0]="db1";


    $dbhostconfig[1]="YYYY";
    $dbuserconfig[1]="YYYY";
    $dbpasswdconfig[1]="";
    $dbankconfig[1]="db2";

    $dbhost=$dbhostconfig[$dbconfig];
    $dbuser=$dbuserconfig[$dbconfig];
    $dbpasswd=$dbpasswdconfig[$dbconfig];
    $dbank=$dbankconfig[$dbconfig];

    if(!empty($dbankoverride)) $dbank=$dbankoverride;

    $db=@mysql_connect($dbhost,$dbuser,$dbpasswd);
    if(!$db) {
        $errormsg="<style type=\"text/css\">\n";
        $errormsg.="<!--\n";
        $errormsg.=".errormsg01 {  font-family: \"Times New Roman\", Times, serif; font-size: 12pt; font-style: normal; line-height: normal; font-weight: normal; font-variant: normal; text-decoration: none}\n";
        $errormsg.="-->\n";
        $errormsg.="</style>\n";
        $errormsg.="<span class=\"errormsg01\">Database Error</span>\n";
        die($errormsg);
    } else {
        # Select Database
        @mysql_select_db($dbank,$db);

        # Query 
        $result=@mysql_query($sql,$db);

        if (substr($sql,0,6)=="select" || substr($sql,0,8)=="describe") {

            for($i=0;$i<mysql_num_fields($result);$i++) {
                $field_name[$i] = mysql_field_name($result,$i);
            }


            $num=@mysql_num_rows($result);

            for($i=0;$in=@mysql_fetch_array($result);$i++) {
                $input[$i]=$in;
            }

            @mysql_close($db);

            $return=array($num,$field_name,$input);
            return $return;
        }
    }

    @mysql_close($db);

    $return=array($num,$field_name,$input);
    return $return;
}
据我所知,此函数在表上运行sql查询,并返回数组中的变量$num、$field\u name和$input

此函数是为php4服务器编写的,它在第行给出了未定义变量$num的错误。。对于这些变量中的每一个

我的问题是:如何移植这段代码,使其能够在PHP5中运行


希望不久能收到回音。非常感谢。

但是如果此声明返回false

if (substr($sql,0,6)=="select" || substr($sql,0,8)=="describe")

您不能使用变量$num,因为它没有在if语句中的任何地方定义?

此代码中的哪些内容在PHP 5中不起作用?请在使用变量之前始终定义它们!例如,put$dbhostconfig=array;到顶部。嗨,谢谢你的快速回复。我得到了以下错误:注意:未定义的变量:C:\xampp\htdocs\lside\inc\dbank.inc.php中的num以及字段名称和输入变量的类似错误此代码在PHP5中应该可以正常工作除了这些错误之外,即使在PHP4中也是糟糕的代码。没有必要进行移植。请不要要求我们为您移植东西,请询问我们您在工作中遇到的具体问题。我也理解这一点,但我觉得奇怪的是,相同的代码在php4中完美地运行,但在php5中崩溃了。我假设register_globals设置存在问题。必须始终定义变量,以避免此类错误: