php mysqli还原数据库,php mysqli操作数据库

这篇博客介绍了如何使用PHP的mysqli扩展进行MySQL数据库的操作,包括查询、获取字段信息、多条SQL语句的执行。同时,详细讲解了数据库事务的概念,通过示例展示了如何在MySQL中设置事务,确保一组操作的原子性和一致性。事务处理涉及到更新和回滚操作,确保数据的准确性和完整性。
摘要由CSDN通过智能技术生成

选择了多少行

$_result->num_rows;

影响了多少行

$_mysqli->affected_rows;

计算有多少条字段被选中

echo $_reslut->field_count;

获取字段的名称(一次只取一个)

$_field = $_reslut->fetch_field();

echo $_field->name;

遍历字段

while (!!$_field = $_reslut->fetch_field()) {

echo $_field->name.'
';

}

一次性取得字段数组

print_r($_reslut->fetch_fields());

移动数据指针

$_reslut->data_seek(5);

移动字段指针

$_reslut->field_seek(2);

multi_query()一次性操作多条sql语句:

修改:

$_mysqli = new mysqli('localhost','root','123456','testguest');

//数据库连接时发生的错误

if (mysqli_connect_errno()) {

echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();

exit();

}

//设置一下编码

$_mysqli->set_charset('utf8');

//创建三个修改的SQL语句

$_sql .= "UPDATE tg_article SET tg_username='喀喀喀' WHERE tg_id=1;";

$_sql .= "UPDATE tg_flower SET tg_fromuser='喀喀喀' WHERE tg_id=1;";

$_sql .= "UPDATE tg_friend SET tg_fromuser='喀喀喀' WHERE tg_id=1";

//使用通知执行的方法

$_mysqli->multi_query($_sql);

//普通只能执行sql的方法是:$_mysqli->query($_sql);

$_mysqli->close();

?>

获取:

$_mysqli = new mysqli('localhost','root','123456','testguest');

//数据库连接时发生的错误

if (mysqli_connect_errno()) {

echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();

exit();

}

//设置一下编码

$_mysqli->set_charset('utf8');

//创建三条选择语句

$_sql .= "SELECT * FROM tg_photo;";

$_sql .= "SELECT * FROM tg_user;";

$_sql .= "SELECT * FROM tg_friend";

if ($_mysqli->multi_query($_sql)) {

//获取当前的结果集

$_result = $_mysqli->store_result();

print_r($_result->fetch_row());

echo '
';

//将结果集的指针移到下一条

$_mysqli->next_result();

$_result = $_mysqli->store_result();

if (!$_result) {

echo '第二条SQL语句有误!';

exit();

}

print_r($_result->fetch_row());

echo '
';

$_mysqli->next_result();

$_result = $_mysqli->store_result();

if (!$_result) {

echo '第三条SQL语句有误!';

exit();

}

print_r($_result->fetch_row());

} else {

echo '第一条SQL语句有误';

exit();

}

$_mysqli->close();

?>

执行数据库事务

事务(transaction)是作为整个一个单元的一组有序的数据库操作。如果一组中的所有操

作都成功,则认为事务成功,即使只有一个失败操作,事务也不成功。如果所有操作成功完

成,事务则提交(commit),其修改将作用于所有其他数据库进程。如果一个操作失败,则事 务将回滚(roll

back),该事务所有操作的影响都将取消。

首先,您的MySQL是InnoDB或BDB引擎的一种,一般来说,你安装了AppServ的集成 包,你选择InnoDB的引擎的数据库即可。如果你建立的表不是InnoDB,可以在phpmyadmin里修改。

$_mysqli = new mysqli('localhost','root','123456','testguest');

//数据库连接时发生的错误

if (mysqli_connect_errno()) {

echo '数据库连接出现了错误.错误的信息是:'.mysqli_connect_error();

exit();

}

//设置一下编码

$_mysqli->set_charset('utf8');

//设置关闭自动提交(手工提交)

$_mysqli->autocommit(false);

//创建两个SQL语句

$_sql .= "UPDATE tg_flower SET tg_flower=tg_flower-50 WHERE tg_id=1;";

$_sql .= "UPDATE tg_friend SET tg_state=tg_state+50 WHERE tg_id=1";

//执行多条SQL语句

//只要这两条SQL语句都成功了,就手工提交给数据库

//否则,就回滚,撤销之前的有效操作。

if ($_mysqli->multi_query($_sql)) {

//通过影响的行数,来判定SQL语句是否成功执行

//如果$_success是false说明sql语句有误,那么就执行回滚,否则就手工提交

$_success = $_mysqli->affected_rows == 1 ? true : false;

//下移指针

$_mysqli->next_result();

$_success2 = $_mysqli->affected_rows == 1 ? true : false;

//如果两条都成功的话

if ($_success && $_success2) {

//执行手工提交

$_mysqli->commit();

echo '完美提交';

} else {

//执行回滚,撤销之前的所有操作

$_mysqli->rollback();

echo '所有操作归零!';

}

} else {

echo '第一条SQL语句有错误!';

}

//再开启自动提交

$_mysqli->autocommit(true);

$_mysqli->close();

?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值