我正在开发一个简单的脚本,旨在选择MySQL数据库的所有表并将其数据放在不同的表中。 有问题的表格结构相似。我的目标是在不必编写每个表的名称的情况下完成此操作(因此我可以管理其中的数百个)。
因此,对于此示例,我将 alpha 和 beta ,并希望将其内容复制到 delta 。 我试图用一个循环列出基础中所有表的名称。然后使用带有变量的MySQL查询。 问题是,它一直给我一个错误的说法 表'test_db.Resource'不存在 (test_db是我的基础名称,资源是......我不知道!)
你知道如何完成这项工作吗?
以下是我的代码:
<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("test_db") or die(mysql_error());
$tables = mysql_list_tables("test_db");
while (list($table) = mysql_fetch_row($tables)) {
echo "$table <br />";
}
// query($q);
mysql_query("INSERT INTO delta
SELECT null, name, age FROM $tables ")
or die(mysql_error());
?>
答案 0 :(得分:0)
<?php
// Make a MySQL Connection
mysql_connect("localhost", "root", "root") or die(mysql_error());
mysql_select_db("test_db") or die(mysql_error());
$tables = mysql_list_tables("test_db");
while (list($table) = mysql_fetch_row($tables)) {
mysql_query("INSERT INTO delta
SELECT null, name, age FROM $table ")
or die(mysql_error());
}
?>
这应该可以正常工作,但mysql_list_tables("test_db");
也会返回delta,因此您将拥有重复的数据。
将数组的名称放在数组中并循环遍历
$tables = array("alpha","beta");
foreach ($tables as $table){
mysql_query("INSERT INTO delta
SELECT null, name, age FROM $table ")
or die(mysql_error());
}