在mysqlPHPMyadmin中用一个查询更新两个表


update two tables with one query in mysql PHPMyadmin?

我有两个表,user_infoFriend_info。我想当用户在user_info中更新他的记录时,它也应该在friend_info中进行更新,其中friend_id=user_id。我试过这个

UPDATE user_info (name, user_email, Gender, DOB, contact, address) WHERE user_id='$user_id',
                 friends_info(name, user_email, Gender, DOB, contact, address) WHERE friend_id='$user_id'
                  values('$name', '$user_email', '$Gender', '$DOB', '$contact', '$address');

但它不起作用。请提供其他解决方案。我们将不胜感激。

我知道这个问题已经来不及问了,但这是我的问题,因为我在做了这么多搜索后感到困惑,而且在我的情况下没有查询起作用

您的问题不清楚。所以,您是在phpmyadmin中测试类似于您想要的查询的东西吗。如果没有,那么您可能需要作为一个事务来执行。但如果它是一个测试或类似的尝试:

UPDATE user_info (name, user_email, Gender, DOB, contact, address) 
values('$name', '$user_email', '$Gender', '$DOB', '$contact', '$address') 
WHERE user_id='$user_id';
UPDATE friends_info(name, user_email, Gender, DOB, contact, address) 
values('$name', '$user_email', '$Gender', '$DOB', '$contact', '$address') 
WHERE friend_id='$user_id';

这是两个查询,然后它们将一起执行。但现在在PHP

检查这些:

https://stackoverflow.com/a/802474/2226796

http://se2.php.net/manual/en/mysqli.multi-query.php

PHP+MySQL事务示例

您可以使用user_id作为联接键来联接语句中的两个表。


    UPDATE user_info ui 
    INNER JOIN friends_info fi 
    ON ui.user_id = fi.user_id
    SET ui.name = $name,
    SET ui.user_email = $email,
    SET ui.Gender = $Gender,
    SET ui.DOB = $DOB,
    SET ui.contact = $contact,
    SET ui.address = $address,
    -- set friends_info
    SET fi.name = $name,
    SET fi.user_email = $email,
    SET fi.Gender = $Gender,
    SET fi.DOB = $DOB,
    SET fi.contact = $contact,
    SET fi.address = $address
    WHERE ui.user_id = $user_id;