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

时间:2014-10-09 07:20:32

标签: php mysql sql select insert

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

4 个答案:

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