在PHP中向两个有外键(FK)关系的表中插入数据,可以按照以下步骤进行操作:
users
和orders
,其中orders
表的外键user_id
与users
表的主键id
相关联。users
表中插入一条用户数据的SQL语句可以是:INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com');
在orders
表中插入一条订单数据的SQL语句可以是:
INSERT INTO orders (order_number, user_id) VALUES ('123456', LAST_INSERT_ID());
其中,LAST_INSERT_ID()
函数用于获取刚刚插入的users
表中的自增主键值。
query()
或exec()
方法执行SQL语句。例如,使用MySQLi扩展执行SQL语句的示例代码如下:$conn = new mysqli("localhost", "username", "password", "database");
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
$sql1 = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
$conn->query($sql1);
$sql2 = "INSERT INTO orders (order_number, user_id) VALUES ('123456', LAST_INSERT_ID())";
$conn->query($sql2);
$conn->close();
使用PDO扩展执行SQL语句的示例代码如下:
$dsn = "mysql:host=localhost;dbname=database";
$username = "username";
$password = "password";
try {
$conn = new PDO($dsn, $username, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql1 = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
$conn->exec($sql1);
$sql2 = "INSERT INTO orders (order_number, user_id) VALUES ('123456', LAST_INSERT_ID())";
$conn->exec($sql2);
$conn = null;
} catch(PDOException $e) {
echo "连接失败: " . $e->getMessage();
}
以上是在PHP中向两个有外键关系的表中插入数据的基本步骤。根据具体的业务需求和表结构,可以进行适当的调整和扩展。
领取专属 10元无门槛券
手把手带您无忧上云