php - 带有 MySQLi 的 PHP 中的多个准备好的语句

标签 php mysql mysqli prepared-statement

我想在 PHP 和 MySQLi 中做两个准备好的语句,一个接一个。我是 PHP 和 MySQLi 的新手,所以我不知道是否应该关闭语句、关闭数据库连接、将所有代码放在一个函数中,或者只是让代码不在函数中。

基本上我只想将一条记录插入到一​​个表中,然后使用 MySQLi 将同一条记录插入到另一个表中。

谢谢!

最佳答案

直接下mysqli页面:http://php.net/manual/en/mysqli.commit.php

<?PHP
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");
$mysqli->set_charset('utf8mb4');

/* set autocommit to off */
$mysqli->autocommit(FALSE);

/* Insert some values */
$mysqli->query("INSERT INTO table1 VALUES ('DEU', 'Bavarian', 'F', 11.2)");
$mysqli->query("INSERT INTO table2 VALUES ('DEU', 'Bavarian', 'F', 11.2)");

/* commit transaction */
$mysqli->commit();

/* close connection */
$mysqli->close();

*为“不正常的” Action 准备好语句进行编辑:

<?php
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli("localhost", "root", "", "");
$mysqli->set_charset('utf8mb4');

/* set autocommit to off */
$mysqli->autocommit(FALSE);

$stmt1 = $mysqli->prepare("INSERT INTO tbl1 (id, intro) VALUES (?, ?)");
$stmt2 = $mysqli->prepare("INSERT INTO tbl2 (id, name) VALUES (?, ?)");

$str1 = 'abc';
$str2 = 'efg';
$str3 = 'hij';
$str4 = 'klm';

$stmt1->bind_param('ss', $str1, $str2);
$stmt2->bind_param('ss', $str3,$str4);

$stmt1->execute();
$stmt2->execute();

/* commit and set autocommit to on */
$mysqli->autocommit(true);

关于php - 带有 MySQLi 的 PHP 中的多个准备好的语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9640396/

相关文章:

mysql - 如何获取每组中的最大值和最小值以及它们的时间?

php - MySQL、PHP : split up output table in categories

php - 确保 MySQL 连接在 PHP 函数中有效

php - 使用正则表达式查找匹配的括号

php - 如果零后为空,为什么要选择选项值

PHP 登录,存储 session 变量

mysql - 如何使用sqlyog或heidisql连接到远程mysql

PHPmyAdmin - 更改字段顺序(上移或下移)

php - 最佳实践使用数据库中的值填充 Bootstrap HTML 表单 SELECT 下拉列表

php - 从mysqli_query()返回数组