2013-02-24 17 views
-1

我是PHP的新手,请原谅我,如果这封电子邮件听起来,那么......愚蠢。我正试图为我的老板移植一些php4代码。这是一个让我难倒的功能。PHP新手试图了解如何在php5中制作相当于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; 

    [email protected]_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 
     [email protected]_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); 
      } 


      [email protected]_num_rows($result); 

      for($i=0;[email protected]_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_NAME和$输入数组。

该函数是为php4服务器编写的,它给出了每个变量的错误“Undefined variable $ num on line ..”。

我的问题是:我如何移植这个代码,使其运行PHP 5?

希望很快听到回来。非常感谢。

+0

此代码中的内容在PHP 5中无法使用? – 2013-02-24 17:41:15

+0

在使用它们之前,请务必定义变量!例如。把'$ dbhostconfig = array();'放在最上面。 – str 2013-02-24 17:42:17

+0

嗨,感谢您的快速回复。我收到以下错误:注意:C:\ xampp \ htdocs \ lside \ inc \ dbank.inc.php中的未定义变量:num以及field_name和输入变量的类似错误 – joshi 2013-02-24 17:46:43

回答

0

,但如果这种说法返回false

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

不能使用变量$ NUM,因为它没有任何地方定义出这个“如果”声明?

+0

这个我也理解,但我觉得很奇怪,相同的代码在php4中完美运行,但在php5中崩溃。我认为这是register_globals设置的一些问题。 – joshi 2013-02-24 17:49:57

+0

你必须总是定义变量,以避免这种类型的错误:) – gaskar 2013-02-24 17:56:39