使用MySQLi在PHP中使用多个Prepared语句

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

基本上我只想在一个表中插入一条记录,然后使用MysqLi将同一条记录插入另一个表中.

谢谢!

最佳答案
直接关闭MysqLi页面http://php.net/manual/en/mysqli.commit.php

PHP
$MysqLi = new MysqLi("localhost","my_user","my_password","world");

/* check connection */
if (MysqLi_connect_errno()) {
    printf("Connect Failed: %s\n",MysqLi_connect_error());
    exit();
}

/* 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',11.2)");

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

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

*编辑准备好的“非理智”行动声明:

PHP
$MysqLi = new MysqLi("localhost","root","","");

/* check connection */
if (MysqLi_connect_errno()) {
    printf("Connect Failed: %s\n",MysqLi_connect_error());
    exit();
}

/* 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);

if ($stmt1->execute() == false)
{
    echo 'First query Failed: ' . $MysqLi->error;
}
$stmt1->close();
if ($stmt2->execute() == false)
{
    echo 'Second query Failed: ' . $MysqLi->error;
}
$stmt2->close();
$MysqLi->close();

相关文章

昨天的考试过程中,有个考点的服务器蓝屏重启后发现Mysql启动不了(5.6.45 x32版本,使用innoDB),重装后...
整数类型 标准 SQL 中支持 INTEGER 和 SMALLINT 这两种类型,MySQL 数据库除了支持这两种类型以外,还扩...
一条 SQL 查询语句结构如下: SELECT DISTINCT <select_list> FROM <left_table&...
数据备份 1. 备份数据库 使用 mysqldump 命令可以将数据库中的数据备份成一个文本文件,表的结构和数据...
概述 在实际工作中,在关系数据库(MySQL、PostgreSQL)的单表数据量上亿后,往往会出现查询和分析变慢...
概述 触发器是 MySQL 的数据库对象之一,不需要程序调用或手工启动,而是由事件来触发、激活,从而实现...