【问题标题】:Update FK from PK using PHP-MySQL使用 PHP-MySQL 从 PK 更新 FK
【发布时间】:2011-07-26 07:33:38
【问题描述】:

我是 php 和 mysql 的新手 我有个问题 我有两张桌子

<?php
    $insert = mysql_query("INSERT INTO request (date, type_request, subject, customer)
    VALUES (NOW(), '".$type."', '".$subject."', '".$username."')");

    $fk = mysql_query("insert into feedback (id_request) select id_request from request where id_request = last_insert_id ");

?>

我一直在这样做,但仍然无法在表反馈中填写 id_request table的结构是这样的

表请求

id_request auto_increment not_null,-->PK
date,
type_request,
subject,
customer

表反馈

id_feedback auto_increment not_null,
id_request,---FK
feedback_user

任何人都可以建议如何更新外键

问候

【问题讨论】:

    标签: php mysql insert foreign-keys


    【解决方案1】:

    在你的代码中

    $fk = mysql_query("insert into feedback (id_request) select id_request from request where id_request = last_insert_id ");
    

    last_insert_id 替换为LAST_INSERT_ID()

    因为它是一个 MySQL 函数而不是一个字段。

    【讨论】:

    • @why_u 如果它对您有用,请不要忘记接受答案:stackoverflow.com/faq#howtoask
    • 对不起,我刚刚读了它。谢谢,我已经检查了这个答案,谢谢你的信息
    【解决方案2】:

    我知道我会为此而发火,但我会这样做:

    <?php
    $date       = date('Y-m-d H:i:s');
    
    $req_query  = 'INSERT INTO request (date, type_request, subject, customer) '.
                  "VALUES ('$date', '$type', '$subject', '$username')";
    $req_result = mysql_query($req_query);
    
    $fk_query   = 'SELECT MAX(id) id FROM request '.
                  "WHERE date = '$date' AND type_request = '$type' ".
                  "AND subject = '$subject' AND customer = '$username'";
    $fk_result  = mysql_query($fk_query);
    $fk_row     = mysql_fetch_assoc($fk_result);
    $fk         = $fk_row['id'];
    
    $fb_result  = mysql_query("INSERT INTO feedback (id_request) VALUES($fk)");
    ?>
    

    【讨论】:

    • 这是正确的做法。这会处理这两个查询之间发生的任何事情。
    • 好的,我会尽快尝试它是否有效。感谢您的帮助,我会问,我输入代码的方式是正确的还是正确的?对不起,如果我的英语不好,并且我的代码也不好,我是初级程序员
    猜你喜欢
    • 1970-01-01
    • 2011-07-02
    • 1970-01-01
    • 2010-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多