我有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它确实得出了结果。
谢谢
答案 0 :(得分:0)
首先在mysql中尝试。删除表2然后在动态执行之前尝试查询。然后逐个将查询更改为变量。我不能从代码中读到很多,但这将是我的方法