php 同时往两个表插入数据,mysql-php怎么同时向2张表里插入数据
时间: 2024-03-14 11:44:53 浏览: 181
MySql中把一个表的数据插入到另一个表中的实现代码
你可以使用 MySQL 的事务(Transaction)来实现同时向两个表插入数据。事务可以保证所有的 SQL 语句都成功执行,或者回滚到事务开始之前的状态。
下面是一个使用事务同时向两个表插入数据的 PHP 代码示例:
```php
<?php
// 创建连接
$conn = new mysqli("localhost", "username", "password", "myDB");
// 检查连接是否成功
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
// 开始事务
$conn->begin_transaction();
try {
// 插入数据到表1
$sql1 = "INSERT INTO table1 (column1, column2) VALUES ('value1', 'value2')";
$conn->query($sql1);
// 插入数据到表2
$sql2 = "INSERT INTO table2 (column1, column2) VALUES ('value3', 'value4')";
$conn->query($sql2);
// 提交事务
$conn->commit();
echo "Data inserted successfully to both tables.";
} catch (Exception $e) {
// 回滚事务
$conn->rollback();
echo "Error: " . $e->getMessage();
}
// 关闭连接
$conn->close();
?>
```
在上面的代码中,我们首先创建了一个 MySQL 的连接,然后开启了一个事务。接着,我们在 try-catch 块中分别执行了两个插入数据的 SQL 语句。如果两个 SQL 语句都执行成功,我们就提交事务,并输出成功的消息。如果其中一个 SQL 语句执行失败,我们就回滚事务,并输出错误消息。最后,我们关闭了连接。
请注意,如果你使用的是 InnoDB 存储引擎,那么 MySQL 默认会自动开启事务。因此,在上面的代码中,我们只需要显式地开启事务、提交事务或回滚事务即可。
阅读全文