gpt4 book ai didi

MySQL - 如何使用外键插入多个表

转载 作者:可可西里 更新时间:2023-11-01 06:31:02 27 4
gpt4 key购买 nike

我是 MySQL 的新手,所以请多关照 :)

我想将 php 表单中的数据插入到 3 个不同的表中,这些表都有外键。我如何编写一次更新所有 3 个表的插入命令,因为如果我尝试手动更新一个表,那么我会因为缺少引用而出错。我是否必须处理“NULL”条目并一个接一个地更新每个表,或者是否可以用一个命令解决这个问题?喜欢 MySQLi_Multi_Query?

非常感谢!

最佳答案

您可以通过 3 种方法完成:

首先推荐。在插入值中使用选择:

   INSERT INTO user (name)
VALUES ('John Smith');
INSERT INTO user_details (id, weight, height)
VALUES ((SELECT id FROM user WHERE name='John Smith'), 83, 185);

其次。在插入值中使用 LAST_INSERT_ID:

INSERT INTO a (id)
VALUES ('anything');
INSERT INTO user_details (id, weight, height)
VALUES (LAST_INSERT_ID(),83, 185);

第三。使用 PHP 脚本

<?php
// Connecting to database
$link = mysql_connect($wgScriptsDBServerIP, $wgScriptsDBServerUsername, $wgScriptsDBServerPassword, true);
if(!$link || !@mysql_SELECT_db($wgScriptsDBName, $link)) {
echo("Cant connect to server");
exit;
}

// Values to insert
$name = 'John Smith';
$weight = 83;
$height = 185;

// insertion to user table
$sql = "INSERT INTO user (name) VALUES ('$name')";
$result = mysql_query( $sql,$conn );
// retrieve last id
$user_id = mysql_insert_id( $conn );
mysql_free_result( $result );

// insertion to user_details table
$sql = "INSERT INTO user_details (id, weight, height) VALUES ($user_id, $weight, $height)";
$result = mysql_query( $sql,$conn );
mysql_free_result( $result );
?>

关于MySQL - 如何使用外键插入多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4565195/

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