如何使用INSERT ... SELECT根据表单输入将数据从一个表插入另一个表

时间:2011-08-29 10:31:00

标签: php mysql

我有这样的情况,我想根据表格中的输入从tableCompany,formPlace在tabel1中添加数据到table2列formCompany,formPlace。像这样:

$formCompany = $_POST['formCompany'];

$formPlace = $_POST['formPlace'];

$formOffer = $_POST['formOffer'];


$sql="INSERT INTO table2  (formCompany, formPlace, formOffer) values ("SELECT table1.formCompany, table1.formPlace from table1 where formCompany LIKE '%$formCompany%' AND formPlace LIKE '%$formPlace%'", '$formOffer')"

3 个答案:

答案 0 :(得分:1)

首先关闭

修复SQL注入孔
使用PDO或

$formCompany = mysql_real_escape_string($_POST['formCompany']);
$formPlace = mysql_real_escape_string($_POST['formPlace']);
$formOffer = mysql_real_escape_string($_POST['formOffer']);

insert select的语法不包含关键字“VALUES”

$sql="INSERT INTO table2  
      (formCompany, formPlace, formOffer) 
      SELECT table1.formCompany, table1.formPlace, '$formOffer' "
        //All insertions happen here ^^^^^^^^^^^^^^^^^^
      ." FROM table1 
        WHERE formCompany LIKE '%$formCompany%' 
          AND formPlace LIKE '%$formPlace%' ";

现在应该可以了。

答案 1 :(得分:0)

INSERT INTO table2 (fromCompany, fromPlace, fromOffer) SELECT table1.fromCompany, table1.fromPlace, '$fromOffer' AS t1fromOffer FROM table1 WHERE table1.formCompany LIKE '%$formCompany%' AND table1.formPlace LIKE '%$formPlace%'

答案 2 :(得分:0)

$sqlSelect="SELECT table1.formCompany, table1.formPlace from table1 where formCompany LIKE '%$formCompany%' AND formPlace LIKE '%$formPlace%'";

获取它并在INSERT查询中使用它

$sql="INSERT INTO table2  (formCompany, formPlace, formOffer) SELECT table1.formCompany, table1.formPlace, '$formOffer' from table1 where formCompany LIKE '%$formCompany%' AND formPlace LIKE '%$formPlace%'"