从一个表中选择所有数据,然后将其插入另一个表


Select all data from a table and insert it to another table

我想从一个表中选择所有数据,并将其插入另一个表。我有这个代码,但它不起作用。。这就是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);
}

请确保两个表的列数相等。使用以下方法插入带有选择查询的记录是一种很好的做法:-

INSERT INTO pdf_table (column_1, column_2) SELECT column_1, column_2 FROM $select_table

您的sql查询类似

INSERT INTO table2 (column_name(s)) SELECT column_name(s) FROM table1; 

使用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);
    }
}

试试这个:

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"。