2013-09-23 61 views
2

我知道我的问题对于这里的一些程序员来说非常简单。这是我第一次尝试将数据插入到两个表中,但这里棘手的部分是这两个表的ID是不一样的。实际上,我们在这里使用2个系统,但是我需要整合来自第二个表的数据以满足他们的需要。我在第一张桌子上没有问题。如何才能使它正确?使用if和else条件?第一张桌子上只有第二张桌子没问题。在一个php脚本中插入数据到两个表中

将数据插入到两个表中

方法:

  • 我们传递第二个表在我们的数据库。
  • 我为两个表格做了单独的连接。

表名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

相关:http://stackoverflow.com/questions/60174/how-can-i-仅在一个数据库中防止sql注入在php – PeeHaa

回答

2

您可以创建一个PHP类有两个(2)功能。一个接收参数(参数)的函数,这些参数的值由记录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的=新dbUpdates;

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

希望这有助于有点...

0

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

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

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

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

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

UPDATE:你可以做多个更新,插入查询你想在一个action.like完成:

$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($查询)运行;

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

希望这有助于

+0

,但不同的表和不同的ID。 –

+0

我更新了我的答案 – tinybyte

+0

我认为这个链接不是我的问题的答案,但我很感激。我想要完成的是将其插入到第二个表格,但不同的列名称。使用条件。 –

相关问题