在一个php脚本中将数据插入两个表中

时间:2013-09-23 09:10:25

标签: php mysql sqlyog

将数据插入两个表的方法:

  
      
  • 我们会在数据库中传输第二张表。
  •   
  • 我为两张桌子单独建立了连接。
  •   

表名是transaction_held_record 我需要填写的栏目是:

  
      
  • transaction_desc
  •   
  • PRODUCT_CODE
  •   
  • PRODUCT_NAME
  •   
  • 销售价格
  •   

以下是第一个表的示例代码:

include("system/connxn.php");

if (!isset($_POST['eid'])) customError("Failed: Invalid access.", $log);

//Columns for first table.

$eid = $_POST['eid'];
$customer = $_POST['customer'];
$title = $_POST['title'];
$startTime = $_POST['startTime']; 
$endTime = $_POST['endTime'];
$roomID = $_POST['roomID'];
$personnel = $_POST['personnel'];
$service = $_POST['service'];
$status = $_POST['status'];
$remarks = $_POST['remarks'];
$adjustment = $_POST['adjustment'];
$totalprice = $_POST['totalprice'];


$query_str = "UPDATE reservationlist SET `title` = '$title', `start` = '$startTime', `end` = '$endTime', `customer` = '$customer', `resource` = '$roomID', `personnel` = '$personnel', `services` = '$service', `status` = '$status', `remarks` = '$remarks', `totalprice` = '$totalprice', `modflag` = '$adjustment' WHERE id = $eid";
//echo $query_str;
mysql_query($query_str) or customError("Failed: (".mysql_errno().") ".mysql_error(), $log);
//echo mysql_insert_id();
$log->writelog("Update on table [reservationlist] record id: ".$eid);
echo "Saved";

谢谢你们!

2 个答案:

答案 0 :(得分:2)

您可以使用两(2)个函数创建一个PHP类。一个函数接收由记录id更新到第一个表的值的参数(参数)和另一个表的另一个函数。例如:

class dbUpdates
{

function updateReservations($eid, $val1, $val2, $val3, $val4, $val5) {
mysql_query("UPDATE reservationlist SET ... WHERE id = $eid");
//do handling or some additional codes here...
}

function insertTransaction($recid, $val1, $val2, $val3, $val4, $val5) {
mysql_query("INSERT INTO transaction_held_record (reffield, val1field, val2field, val3field, val4field, val5field) VALUES($recid, $val1, $val2, $val3, $val4, $val5)");
//do handling or some additional codes here...
}

}

包含班级文件include("dbUpdates.php"); 通过

实例化该类
  

$ updateDB = new dbUpdates;

您可以调用函数$updateDB->updateReservations("your arguments here...");$updateDB->insertTransaction("your arguments here...");

希望这有点帮助...

答案 1 :(得分:0)

如果我错了,请纠正我。你需要在两个不同的数据库中将数据插入两个不同的表吗?

为此你需要两个连接和每个连接的脚本。检查第一个脚本是否成功然后运行第二个脚本。

但如果您可以通过一个连接以某种方式访问​​这两个表,则可以在一个操作中同时运行两个脚本!

更新:我认为您需要在第一个表中获取插入行的ID并将其用于第二个表,对吗?

这样做:How to get the ID of INSERTed row in mysql?

更新:您可以进行多次更新,在单个操作中插入您想要完成的查询。喜欢:

$query = "UPDATE `tbl_something` SET col1 = 'first' WHERE col1 LIKE '%something%';INSERT INTO tbl_another (col1 , col2 , col5) VALUES ('firstValue' , 'secondValue' , 'fifthValue');UPDATE ... ; ";

然后使用mysq_query($ query);

运行它

如果你想要,你可以在查询中获得受影响的行的id,就像我之前提到的那样,并在下一个中使用它。

希望这有帮助