PHP MySQL将信息从一种形式插入到多个表中

时间:2014-11-16 00:51:25

标签: php mysql forms insert multiple-tables

所以我的form1包含数据库中多个表的信息。我在这个表单中有列表框和文本框,有这些信息。所以我要做的就是将用户提交的任何信息插入数据库并将其输出到form2上。我的输出页面上有INSERT INTO。我知道你不能使用一个INSERT INTO查询,所以我想知道如何使用多个INSERTS并将该信息提交回数据库。

下面创建的变量来自上一页,所有值都在那里。

if (isset($_POST['n_submit'])){
    $oid = $_POST['oid'];
    $odate = $_POST['odate'];
    $ostatus = $_POST['ostatus'];

    $cfname = $_POST['cfname'];
    $cname = $_POST['clname'];
    $efname = $_POST['efname'];
    $elname = $_POST['elname'];
    echo "New record created successfully";
    $db = mysqli_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password') or die ("I cannot connect to the database because: ".mysqli_connect_error());

    $query = "select status_id from ostatus where status_type = '$ostatus'";
    $result = mysqli_query($db, $query) or die("Error in SQL statement:" .mysqli_error());
    $row = mysqli_fetch_array($result);

    $statusid = $row[0];

    $query1 = "insert into cust ('c_fname', 'c_lname') values ('$cfname',    $clname)";
    $result1 = mysqli_query($db, $query1) or die("Error in SQL statement:" .mysqli_error());


    $query2 = "insert into employed  ('e_fname', e_lname) values ('$efname', '$elname')";
    $result2 = mysqli_query($db, $query1) or die("Error in SQL statement:" .mysqli_error());


    $query3 ="INSERT INTO sorder (o_id, o_date, s_id) VALUES ('{$oid}', '{$odate}', '{$statusid}')";
    $result3 = mysqli_query($db, $query3);
}

1 个答案:

答案 0 :(得分:0)

首先,您的查询容易受到SQL注入攻击。我不打算解决这个问题。

其次,Google应该如何正确处理表单。如果你真的关心数据肯定会进入所有表,你应该考虑启动SQL事务。

第三,您应该可以像在代码中一样使用多个插入。但是你需要纠正你的语法错误。

尝试此代码(我也删除了选择代码是基于您的问题,不需要)

if (isset($_POST['n_submit'])){
    $oid = $_POST['oid'];
    $odate = $_POST['odate'];
    $ostatus = $_POST['ostatus'];
    $cfname = $_POST['cfname'];
    $cname = $_POST['clname'];
    $efname = $_POST['efname'];
    $elname = $_POST['elname'];

    $db = mysqli_connect('127.0.0.1:3307', 'mysql_user', 'mysql_password') or die ("I cannot connect to the database because: ".mysqli_connect_error());


    $query1 = "insert into cust (c_fname, c_lname) values ('".$cfname."',    '".$clname."')";
    $result1 = mysqli_query($db, $query1) or die("Error in SQL statement:" .mysqli_error());


    $query2 = "insert into employed  (e_fname, e_lname) values ('".$efname."', '".$elname."')";
    $result2 = mysqli_query($db, $query2) or die("Error in SQL statement:" .mysqli_error());


    $query3 ="INSERT INTO sorder (o_id, o_date, s_id) VALUES ('".$oid."', '".$odate."', '".$statusid."')";
    $result3 = mysqli_query($db, $query3);

  if($result1 && $result2 && $result3)
     echo 'New record created successfully';
  else
     echo 'something did not work';
}