我有一个预订表格,在提交时将预订详细信息输入到“预订”表中
但我也想更新和事件表在同一时间与调整后的数字出售门票。
<?php
/* Duplicate information to DB */
function queryMysqli($mysql_table, $bevent_id,$bevent_price,$att1title,$att1firstname,$att1surname,$att1email, $att1phone,$people,$payment,$dietry,$message) {
$total="60";
$grandtotal=$total+$people;
/* Variables */
$error_exists = false;
$error_mysql = "";
/* Connection to DB */
/* Constants, that defined in action.php, are used */
$link = mysqli_connect(SERVER, USER, PASSWORD, DATABASE);
if (mysqli_connect_error()) {
$error_mysql = ("Error connecting to database (" . mysqli_connect_errno() . ") ". mysqli_connect_error());
return $error_mysql;
}
mysqli_set_charset($link, 'utf8');
/* Query to DB */
/* Add data to DB */
$result = mysqli_query($link, "INSERT INTO ".$mysql_table."(`id`,
`bevent_id`,
`bevent_price`,
`att1title`,
`att1firstname`,
`att1surname`,
`att1email`,
`att1phone`,
`people`,
`payment`,
`dietry`,
`editor`,
`message`)
VALUES (NULL, '".mysqli_real_escape_string($link, $bevent_id)."',
'".mysqli_real_escape_string($link, $bevent_price)."',
'".mysqli_real_escape_string($link, $att1title)."',
'".mysqli_real_escape_string($link, $att1firstname)."',
'".mysqli_real_escape_string($link, $att1surname)."',
'".mysqli_real_escape_string($link, $att1email)."',
'".mysqli_real_escape_string($link, $att1phone)."',
'".mysqli_real_escape_string($link, $people)."',
'".mysqli_real_escape_string($link, $payment)."',
'".mysqli_real_escape_string($link, $dietry)."',
'".mysqli_real_escape_string($link, $message)."')");
/* Get a last row ID to send in message */
$row_id = mysqli_insert_id($link);
$query="UPDATE `bookable_events` SET `sold`='$grandtotal' WHERE `bevent_id`='$bevent_id'";
/* If error occurs */
if (!$result){
$error_exists = true;
$error_mysql = "Error database query: ".mysqli_error($link);
}
/* Return result */
mysqli_close($link);
return $error_exists ? $error_mysql : $row_id;
}
?>
预订表正在更新,但活动表没有,有人能帮忙吗?
1条答案
按热度按时间enyaitl31#
在单个事务中更新多个表是一个常见的需求。看起来您正在尝试使用PHP函数来实现这一点,但是为了获得更好的可靠性、安全性和可读性,还有几个方面可以改进。
下面是使用预处理语句和事务查询的函数的修订版本:
另一种方式,我建议更清洁
希望能帮到你