【问题标题】:Adding records in multiple tables PHP MYSQL在多个表中添加记录 PHP MYSQL
【发布时间】:2012-10-22 23:41:26
【问题描述】:

我有两个表,users 和 cmets。我需要将名字和姓氏添加到用户,并将 cmets 添加到 cmets 表中,用户 id 作为 cmets 中的外键。我正在使用 phpmyadmin 来添加外键约束和关系。

这是我的 html 表单:

<form action="dbconnect.php" method="post">
Firstname: <input type="text" name="firstname"><br />
Lastname: <input type="text" name="lastname"><br />
Comments: <textarea cols="30" rows="5" name="comments"></textarea><br />
<input type="submit">
</form>

这是我的 php 插入代码:

mysql_select_db("test", $db_server);

$sql="INSERT INTO users (Firstname, Lastname)
VALUES
('$_POST[firstname]','$_POST[lastname]')";

$sql="INSERT INTO comments (Comment)
VALUES
('$_POST[comments]')";


if (!mysql_query($sql,$db_server))
    {
    die('Error' . mysql_error());   
    }
echo "1 record added" ;

mysql_close($db_server);

这是我得到的错误:

错误:无法添加或更新子行:外键约束失败 (test.comments,约束comments_ibfk_2外键 (useridfk) 参考users (id) 更新时删除级联 级联)

我是 php 和 phpmyadmin 的新手,因此不胜感激。

【问题讨论】:

    标签: php mysql phpmyadmin


    【解决方案1】:

    首先,您需要对用户表运行 INSERT 查询,以便创建用户记录。

    mysql_select_db("test", $db_server);
    
    $sql="INSERT INTO users (Firstname, Lastname)
    VALUES
    ('$_POST[firstname]','$_POST[lastname]')";
    
    mysql_query($sql);
    
    if (!mysql_query($sql,$db_server))
        {
        die('Error' . mysql_error());   
        }
    echo "1 record added" ;
    

    然后您需要在 users 表中检索新创建记录的 id

    $newIdQuery = mysql_query("SELECT LAST_INSERT_ID() AS userId FROM users");
    $newId = mysql_fetch_assoc($newIdQuery);
    

    然后您可以使用该用户 ID 添加 cmets,并正确填充用户 ID 外键。

    注意:使用 mysql_* 函数构建 MySQL 查询时,如果将 php 变量包装在 { } 中,它会将 php 变量的值插入到 SQL 语句中。

    $sql="INSERT INTO comments (id, Comment)
    VALUES
    ({$newId["userId"]}, '$_POST[comments]')";
    
    
    if (!mysql_query($sql,$db_server))
        {
        die('Error' . mysql_error());   
        }
    echo "1 record added" ;
    
    mysql_close($db_server);
    

    【讨论】:

    • 我知道我在这里做错了。谢谢。我马上试试
    猜你喜欢
    • 2012-02-22
    • 1970-01-01
    • 2012-08-21
    • 2016-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多