我们有两张桌子:
users
(username
,password
)userinfo
(office
,address
,company
)用户名与办公室名称相同。我创建了一个表单来添加新用户,一切都很棒。
我有另一个表单来更新用户..我可以让一切工作,除了用户名/办公室。
我如何更新用户名/办公室
这是我的代码(显然这是错的,因为它什么都不做)这一直让我疯狂。任何指针将不胜感激:
$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);
答案 0 :(得分:0)
主要问题是语法不正确在SET
子句之前不应该有任何字段名称。在更新时,您只需指出要在此部分查询中操作的表名。试试这个:
UPDATE users
JOIN userinfo
ON users.UserName = userinfo.Office
SET
users.UserName = ?,
userinfo.Office = ?
WHERE users.UserName = ?
我也不明白为什么你会为用户名和办公室提供两个不同的POST变量,如果它们是相同的值。所以,我假设一个代表当前值,另一个代表要更新的值。如果是这种情况,您需要绑定您的参数,如下所示:
// 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);