gpt4 book ai didi

php - 更新两个表中的匹配列

转载 作者:行者123 更新时间:2023-11-29 23:07:12 25 4
gpt4 key购买 nike

我们有两个表:

  • 表 1:用户(用户名密码)
  • 表 2:用户信息(办公室地址公司)

用户名与办公室名称相同。我创建了一个表单来添加新用户,一切正常。

我有另一个表格来更新用户。除了用户名/办公室之外,我可以让一切正常工作。

我将如何更新用户名/办公室

这是我的代码(显然它是错误的,因为它什么也没做)这让我一整天都发疯。任何指示将不胜感激:

    $query2 =   'UPDATE users.UserName JOIN userinfo.Office ON users.UserName = userinfo.Office SET users.UserName = ?,userinfo.Office = ? WHERE users.UserName = ?';
$parameters2 = array($_POST['UserName'],$_POST['Office']);
$statement2 = $db->prepare($query2);
$statement2->execute($parameters2);

最佳答案

主要问题是语法不正确 SET 子句之前不应有任何字段名称。更新时,您只需指明要在查询的这部分中操作的表名称。试试这个:

UPDATE users
JOIN userinfo
ON users.UserName = userinfo.Office
SET
users.UserName = ?,
userinfo.Office = ?
WHERE users.UserName = ?

我也不明白为什么用户名和办公室会有两个不同的 POST 变量,如果它们是相同的值。因此,我假设一个代表当前值,另一个代表要更新到的值。如果是这种情况,您需要像这样绑定(bind)参数:

// change these two lines as necessary
$old_name = $_POST['Office'];
$new_name = $_POST['UserName'];
// execute query
$query2 = '...'; // query noted above
$parameters2 = array($new_name, $new_name, $old_name);
$statement2 = $db->prepare($query2);
$statement2->execute($parameters2);

关于php - 更新两个表中的匹配列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28243449/

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