我创建了静态函数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);
}
我要求就这一主题提出建设性的意见,并提出更好的解决方案的建议,请回答,答案中的代码示例,谢谢和最好的问候。
答案 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;
}