【问题标题】:Select all data from a table and insert it to another table从一个表中选择所有数据并将其插入到另一个表中
【发布时间】:2014-12-04 00:50:45
【问题描述】:
我想从我的一个表中选择所有数据并将其插入到另一个表中。我有这段代码,但它不起作用..这就是 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);
}
【问题讨论】:
标签:
php
mysql
sql
select
insert
【解决方案1】:
请确保两个表的列数相等。
使用以下方式插入带有选择查询的记录是一个好习惯:-
INSERT INTO pdf_table (column_1, column_2) SELECT column_1, column_2 FROM $select_table
【解决方案2】:
你的 sql 查询是这样的
INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1;
【解决方案3】:
您使用的方法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);
}
}
【解决方案4】:
试试这个:
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”。