gpt4 book ai didi

php - 在多个表中添加记录 PHP MYSQL

转载 作者:行者123 更新时间:2023-11-29 08:43:56 25 4
gpt4 key购买 nike

我有两个表,用户和评论。我需要将名字和姓氏添加到用户,并将评论添加到评论表,并将用户 ID 作为评论中的外键。我正在使用 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);

这是我收到的错误:

Error: Cannot add or update a child row: a foreign key constraint fails (test.comments, CONSTRAINT comments_ibfk_2 FOREIGN KEY (useridfk) REFERENCES users (id) ON DELETE CASCADE ON UPDATE CASCADE)

我是 php 和 phpmyadmin 的新手,因此非常感谢您的帮助。

最佳答案

首先,您需要在用户表上运行 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" ;

然后您需要检索用户表中新创建的记录的 ID

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

然后您可以使用该 userId 添加评论,并正确填充用户 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);

关于php - 在多个表中添加记录 PHP MYSQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13021571/

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