如何创建一个静态函数创建表php?

时间:2018-05-18 17:48:42

标签: php function

我创建了静态函数create table和insert,但我不知道如何将它们用于不同的数据库。 示例:

        static public function createTableA($TABLE,$DATA) 
        {       
            $conn=self::getConnectionA();           
            $SQL="CREATE TABLE {$TABLE}"; 
            $SQL.=" (";
            foreach($DATA as$key) 
            {
                $SQL.=$key.","; 
            }           
            $SQL=rtrim($SQL,","); 
            $SQL.= ") ";            
            $result=$conn->query($SQL); 
            if(!($result)) 
            {
                return false; 
            } 
            else 
            {
                return true; 
            }           
            mysqli_close($conn);            
        }
        static public function createTableB($TABLE,$DATA) 
        {       
            $conn=self::getConnectionB();           
            $SQL="CREATE TABLE {$TABLE}"; 
            $SQL.=" (";
            foreach($DATA as$key) 
            {
                $SQL.=$key.","; 
            }           
            $SQL=rtrim($SQL,","); 
            $SQL.= ") ";            
            $result=$conn->query($SQL); 
            if(!($result)) 
            {
                return false; 
            } 
            else 
            {
                return true; 
            }           
            mysqli_close($conn);            
        }
在上面的例子中,我想创建静态函数SQL,我可以在两个数据库中使用[$conn=self::getConnectionA(); and $conn=self::getConnectionB();] 也许这样的事情???

        static public function createTable($TABLE,$DATA) 
        {           
            $SQL="CREATE TABLE {$TABLE}"; 
            $SQL.=" (";
            foreach($DATA as$key) 
            {
                $SQL.=$key.","; 
            }           
            $SQL=rtrim($SQL,","); 
            $SQL.= ") ";
            return $SQL;        
        }
        static public function createTableA($TABLE,$DATA) 
        {       
            $conn=self::getConnectionA();
            $sql=self::createTable($TABLE,$DATA);           
            $result=$conn->query($sql); 
            if(!($result)) 
            {
                return false; 
            } 
            else 
            {
                return true; 
            }           
            mysqli_close($conn);            
        }
        static public function createTableB($TABLE,$DATA) 
        {       
            $conn=self::getConnectionB();
            $sql=self::createTable($TABLE,$DATA);           
            $result=$conn->query($sql); 
            if(!($result)) 
            {
                return false; 
            } 
            else 
            {
                return true; 
            }           
            mysqli_close($conn);            
        }

我要求就这一主题提出建设性的意见,并提出更好的解决方案的建议,请回答,答案中的代码示例,谢谢和最好的问候。

1 个答案:

答案 0 :(得分:0)

也许更像是这样。

我把它清理得稍微冗长一点,让我知道它是否不清楚。但主要的是让连接选择成为像TABLE和DATA这样的参数,用“A' A'或者' B'。

static public function _createTable($TABLE,$DATA) 
{           
    $SQL="CREATE TABLE {$TABLE}"; 
    $SQL.=" (";
    foreach($DATA as$key) 
    {
        $SQL.=$key.","; 
    }           
    $SQL=rtrim($SQL,","); 
    $SQL.= ") "; 
    return $SQL; // edit, added this           
}
static public function createTable($CONN,$TABLE,$DATA) 
{       
    switch($CONN){
      case 'A':
        $conn = self::getConnectionA();
        break;
      case 'B':
        $conn = self::getConnectionB();
        break;
    }
    $sql=self::_createTable($TABLE,$DATA);           
    $result=$conn->query($sql);
    mysqli_close($conn); 
    return (bool) $result;           
}