我想从我的一个表中选择所有数据并将其插入另一个表。我有这个代码,但它没有用。这就是phpMyadmin所说的“MySQL返回一个空结果集(即零行)。(查询耗时0.0010秒。)”
这是我的代码:
if(isset($_POST['select_table']))
{
$select_table = mysql_real_escape_string($_POST['select_table']);
$query_select = "INSERT INTO pdf_table
SELECT * FROM $select_table";
$select_query = mysql_query($query_select,$connectDatabase);
}
答案 0 :(得分:1)
请确保两个表的列数相同。 使用以下方法插入带有选择查询的记录是一种很好的做法: -
INSERT INTO pdf_table (column_1, column_2) SELECT column_1, column_2 FROM $select_table
答案 1 :(得分:1)
你的SQL查询就像
INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;
答案 2 :(得分:0)
您正在使用的方法INSERT INTO pdf_table SELECT * FROM $select_table
将只允许您从第一个表格插入另一个表格的单行。
根据您的要求,您希望第一张表中的所有记录都插入 pdf_table 所以我想建议尝试以下方法 可能这就是你要找的东西
if(isset($_POST['select_table']))
{
$select_table = mysql_real_escape_string($_POST['select_table']);
$select_query = mysql_query( "select * from $select_table ",$connectDatabase);
while ($row = mysql_fetch_array($select_query))
{
mysql_query( "insert into pdf_table values($row['column1'],$row['column2'],...,$row['columns']) ",$connectDatabase);
}
}
答案 3 :(得分:0)
试试这个:
if(isset($_POST['select_table']))
{
$select_table = mysql_real_escape_string($_POST['select_table']);
$query_select = " Create Table pdf_table ( SELECT * FROM $select_table); ";
$select_query = mysql_query($query_select,$connectDatabase);
}
但是,此查询将创建新表" pdf_table"。