Yer*_*rel 8 php mysql mysqli transactions prepared-statement
有没有办法与准备好的报表进行交易?
我的意思是我可以使用以下示例$mysqli->autocommit(FALSE);和$mysqli->commit( );和$mysqli->rollback( );
//Preparing the statment
$insert_stmt=$mysqli->prepare("INSERT INTO x VALUES(?,?)")
or die($mysqli->error);
//associate variables with the input parameters
$insert_stmt->bind_param("is", $my_number,$my_string); //i=integer
//Execute the statement multiple times....
for ($my_number = 1; $my_number <= 10; $my_number++)
{
$my_string="row ".$my_number;
$insert_stmt->execute() or die ($insert_stmt->error);
}
$insert_stmt->close();
Run Code Online (Sandbox Code Playgroud)
我环顾四周但找不到任何使用预处理语句的例子(不是PDO):http: //php.net/manual/en/mysqli.prepare.php有交易,我只找到这里提到的例子:http ://book.opensourceproject.org.cn/lamp/mysql/mysqlstored/opensource/0596100892/mysqlspp-chp-13-sect-2.html其中事务和预准备语句从不相互混合.
将它们一起使用会有误吗?
准备好的报表和交易是不相关的技术和技术.
您可能希望直接发出START TRANSACTION和COMMIT/ ROLLBACK命令,而不是使用专用方法.它们在功能上是等价的.
对于你的循环,你要START TRANSACTION 在你之前发出prepare,然后COMMIT在循环之后发出.在准备好的语句启动之后但在执行之前,您可能不应该尝试打开事务.
出于某种原因,他们没有添加"启动事务"命令,而是支持关闭自动提交.关于mysqli的一些奇怪的事情让我总是推荐PDO.:)打开事务隐式关闭事务持续时间的自动提交.
| 归档时间: |
|
| 查看次数: |
6475 次 |
| 最近记录: |