gpt4 book ai didi

php - 在一个 SQL 查询中更新多个表

转载 作者:行者123 更新时间:2023-11-30 21:43:31 25 4
gpt4 key购买 nike

我做了一些研究,发现不可能通过一个查询来完成,而是可以通过事务来完成。但是我无法让 SQL 查询正常工作。如果我一个一个地使用这些语句,它们都可以正常工作。

我该怎么办?

目标是用一个表单中的信息更新两个表。

$query = "

START TRANSACTION;

UPDATE projects

SET

projects.project_name = '".$mysqli->real_escape_string($_POST['project_name'])."',

projects.project_group = '".$mysqli->real_escape_string($_POST['project_group'])."',

projects.project_notes = '".$mysqli->real_escape_string($_POST['project_notes'])."',

projects.project_created = '".$mysqli->real_escape_string($_POST['project_created'])."',

projects.project_start = '".$mysqli->real_escape_string($_POST['project_start'])."',

projects.project_delivery = '".$mysqli->real_escape_string($_POST['project_delivery'])."',

projects.project_orderdetails = '".$mysqli->real_escape_string($_POST['project_orderdetails'])."',

projects.project_owner = '".$mysqli->real_escape_string($_POST['project_owner'])."'

where projects.project_id = '".$mysqli->real_escape_string($_REQUEST['id'])."';

INSERT INTO hours

hours.userhours_id = '".$mysqli->real_escape_string($_POST['project_owner'])."',

hours.projecthours_id = '".$mysqli->real_escape_string($_REQUEST['id'])."',

hours.user_hours = '".$mysqli->real_escape_string($_POST['user_hours'])."'

where projects.project_id = '".$mysqli->real_escape_string($_REQUEST['id'])."';

COMMIT;

";

最佳答案

Mysqli 有处理事务的方法,例如 http://php.net/manual/en/mysqli.begin-transaction.php .

代码可以是:

$mysqli->begin_tansaction();
$mysqli->query('query1');
$mysqli->query('query2');
$mysqli->commit();

关于php - 在一个 SQL 查询中更新多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50550112/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com