PHP / MySQL - 如果不存在则创建表

时间:2012-03-07 03:36:28

标签: php mysql arrays

我有2个db连接,db1是主db,db2是来自。

的副本

我的脚本是从db2复制(这是开发),以使db1相同。

但是,如果不存在,我无法使用创建表来使用多个数据库并使用“LIKE”。

这是连接:

<?php
$host = 'localhost';

$db1 = "***";
$username_db1 = '***';
$password_db1 = '***';
$db_c1 = mysql_connect($host, $username_db1, $password_db1) or die('Error connecting to Database!<br>'.mysql_error());

$db2 = "***";
$username_db2 = '***';
$password_db2 = '***';
$db_c2 = mysql_connect($host, $username_db2, $password_db2, true) or die('Error connecting to Database!<br>'.mysql_error());

mysql_select_db($db1, $db_c1);
mysql_select_db($db2, $db_c2);
?>

这是脚本的一部分。

$tables1 = array();
$tables2 = array();

$res = mysql_list_tables($db1, $db_c1);
while (list($tmp) = mysql_fetch_row($res))
{
    $tables1[] = $tmp;
}

$res = mysql_list_tables($db2, $db_c2);
while (list($tmp) = mysql_fetch_row($res))
{
    $tables2[] = $tmp;
}

// Tables creates if not exists
foreach($tables2 as $k=>$v)
{
    mysql_query("CREATE TABLE IF NOT EXISTS ".$db1.".".$v." LIKE ".$db2.".".$v, $db_c1);
}

我认为问题出在LIKE我不认为它正确读取它,我有var dumped $ tables2它确实得出了结果。

谢谢

1 个答案:

答案 0 :(得分:0)

首先在mysql中尝试。删除表2然后在动态执行之前尝试查询。然后逐个将查询更改为变量。我不能从代码中读到很多,但这将是我的方法