同时插入和更新

时间:2013-04-30 04:26:29

标签: php mysql

我有问题需要解决:我在MySQL中有2个名为Bata和Tranport的表。

对于表Bata,我有:id(PK,AI),电话,数量,价格和格式。

对于表Tranport我有:id(PK,AI),电话,姓名,地址等。

当用户点击Bata页面上的提交时,数据将保存到数据库中,但电话字段将保留为空白。当用户在Tranport页面上单击“提交”时,它会将数据保存到数据库中。

问题是如何将电话号码从Tranport字段插入到ID相同的Bata电话字段?我必须这样做,因为最终用户可以查看他们的订单。

这是我的传输代码

<?php
error_reporting(0);
ini_set('display_errors', false);


$tranport = $_POST['Tranport'];
$name = $_POST['billName'];
$phone = $_POST['billPhone'];
$company = $_POST['billCompany'];
$address = $_POST['billAdd1']; 
$negeri = $_POST['negeri']; 
$label = $_POST['mylabel']; 
$date = $_POST['inputField'];

$input = "INSERT INTO tranport (deliverTyper , name , phone , company ,
   address , state    ,   rate , date )";

$input .= " VALUES ('$tranport', '$name', '$phone', '$company', '$address',
    '$negeri',   '    $label', '$date') "; 

require_once("connection.php");
mysqli_query($conn,$input);


$query = "INSERT INTO bata (phone) VALUES ('$phone')"; 

mysqli_query($conn,$query);


if(mysqli_affected_rows($conn) <= 0)
{
print "Unable to create account.Please <a href='tranport.php'>click here</a>to try           gain.";
}
else
{
mysqli_close($conn);
header("Location:try.php?sebab=pengguna baru");
exit();
}

 mysqli_close($conn);


  ?>    

2 个答案:

答案 0 :(得分:1)

您可以使用mysqli_insert_id($conn)获取上次插入条目的AUTO_INCREMENT列的ID。


您的代码很容易被注入。您应该使用PDO / mysqli

正确参数化查询

答案 1 :(得分:0)

您可以使用mysqli_insert_id($ conn)获取为最后插入的条目的AUTO_INCREMENT列生成的ID。

以下是获取最后一次插入ID的示例代码

<?php
$con = mysql_connect("localhost", "peter", "abc123");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

$db_selected = mysql_select_db("test_db",$con);

$sql = "INSERT INTO person VALUES ('Børge','Refsnes','Sandnes','17')";
$result = mysql_query($sql,$con);
echo "ID of last inserted record is: " . mysql_insert_id();

mysql_close($con);
?>