当前位置:七道奇文章资讯数据防范MySQL防范
日期:2011-01-25 22:43:00  来源:本站整理

<b>一组新的PHP插件实现MySQL的底子事件</b>[MySQL防范]

赞助商链接



  本文“<b>一组新的PHP插件实现MySQL的底子事件</b>[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
 

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

<?php
// connect to database
$dbh = mysqli_connect("localhost", 
"user", "pass", "test") or die("Cannot connect");

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// look for a transfer
if ( 

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

___FCKpd___2

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

POST['submit'] && is_numeric ( 

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

___FCKpd___2

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

POST['amt'])) { // add $ to target account $result = mysqli_query($dbh, "UPDATE accounts SET balance = balance + " .  

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

___FCKpd___2

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

POST['amt'] . " WHERE id = " .  

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

___FCKpd___2

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

POST['to']); if ($result !== TRUE) { mysqli_rollback($dbh); // if error, roll back transaction } // subtract $ from source account $result = mysqli_query($dbh, "UPDATE accounts SET balance = balance - " .  

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

___FCKpd___2

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

POST['amt'] . " WHERE id = " .  

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

___FCKpd___2

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

POST['from']); if ($result !== TRUE) { mysqli_rollback($dbh); // if error, roll back transaction } // assuming no errors, commit transaction mysqli_commit($dbh); } // get account balances // save in array, use to generate form $result = mysqli_query($dbh, "SELECT * FROM accounts"); while ($row = mysqli_fetch_assoc($result)) { $accounts[] = $row; } // close connection mysqli_close($dbh); ?> <html> <head></head> <body> <h3>TRANSFER</h3> <form action="<?php echo  

事件处理支持很长时间以来一向是大大都MySQL开辟者的心愿,随着MySQL 4.0的公布,这个心愿最后终于得以实现.MySQL 4.0后不久,拥有一个新的MySQL插件的PHP 5.x也公布了.这个新插件,MySQL Improved,使得PHP开辟者通过操纵本地的PHP函数,得到了这些新的事件处理本领.这篇简短的教程将向你阐明怎样操纵这些新的MySQLi函数,用PHP实现以MySQL为底子的事件.

概要

假如你还不知道,那么我可以奉告你,事件只是一组SQL语句,普通因为它们是相彼此互依靠的,所以要在全有或全无(all-or-nothing)的情势下履行.只有当全部构成的语句都履行成功了,一个事件才算是成功了;任何一个语句中的失利应当城市招致系统“回滚”到它先前的状况,以避免数据衔接/崩溃问题.

关于这一点,两个银行帐户间的转帐是一个很好的例子.在数据库级,这样的转帐包含两个步骤:首先,从源帐户中扣除转帐的金额,然后将其加到目标帐户中.假如在第二步中发生了错误,那么第一步就必须被撤消,以避免不符合的情形(和愤恨的客户聚众惹事).事件安全系统将自动地撤到系统先前的“快照”.

大大都数据库(包含MySQL)通过一个号令的组合来完成这个:

START TRANSACTION号令标志着一个新的事件组的开始.它背面常接一系列的SQL号令.

COMMIT号令标志着一个事件组的完毕,表示事件期间做的全部改变应当被提交大概使之永久化.

ROLLBACK号令标志着一个事件组的完毕,表示事件期间所做的全部改变应当被撤消.

PHP中的事件处理函数.

PHP中的MySQLi插件引进了新的函数,帮忙开辟者操纵MySQL的事件处理本领.实质上,这些函数对等地被叫做SQL START TRANSACTION,COMMIT和 ROLLBACK号令.列表A为你展示了一个例子:

列表A:

 

<?php
// connect to database
$dbh = mysqli_connect($host, $user, $pass, $db);

// turn off auto-commit
mysqli_autocommit($dbh, FALSE);

// run query 1
$result = mysqli_query($dbh, $query1);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}

// run query 2
$result = mysqli_query($dbh, $query2);
if ($result !== TRUE) {
    mysqli_rollback($dbh);  
// if error, roll back transaction
}
    
// and so on...

// assuming no errors, commit transaction
mysqli_commit($dbh);

// close connection
mysqli_close($dbh);
?>

在PHP 中履行一项事件有三个基本的步骤:

第一步是始终关掉数据库的“auto-commit”,它实质上意味着系统在你作出改变时就保存它们.这一点是很重要的,因为在一个事件处理环境中,你应当只有在肯定了全部事件处理的“unit”都成功完成了今后,才保存你所做的改变.你可以通过mysqli_autocommit()函数关掉数据库的自动提交.

接下来,通过mysqli_query()函数,持续用普通的办法举行INSERT、UPDATE和/或DELETE查询.查验每一个查询返回的值,弄清楚它能否成功了是很重要的.假如此中任何一个查询失利了,mysqli_rollback()函数就会被用来将系统返回到事件举行之前的状况.

假定构成事件组的全部号令都成功履行了,就要用mysqli_commit()函数将改变保存到数据库系统.请注意,一旦这个函数被调用,事件就不能被撤消了.

工作实例

要理解这个在实践中是怎么工作的,让我们回到前面谈论过的银行转帐的例子.我们假定你的任务是成立一个简单的Web利用程序,让用户在他们的银行帐户间转帐.我们再进一步假定一个单独用户的帐户存储在一个MySQL数据库中,以下所示:

 

mysql> SELECT * FROM accounts;

+----+------------+---------+

| id | label      | balance |

+----+------------+---------+

|  1 | Savings #1 |    1000 |

|  2 | Current #1 |    2000 |

|  3 | Current #2 |    3000 |

+----+------------+---------+

3 rows in set (0.34 sec)

目前,需求成立一个简单的界面,利用户可以输入一个现金数额,实现从一个帐户到另一个的转帐.实际的“交易”将用两个UPDATE语句来履行,一个将转帐金额从源帐户取出,即借方,另一个将转帐金额记入目标帐户,即贷方.假定我们所做的是在帐户之间举行转帐,那么全部帐户的可用节余总额(00)应当一向保持不变.

列表B显示了大概的代码:

列表 B:

___FCKpd___2

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

SERVER['PHP_SELF']; ?>" method="post"> Transfer $ <input type="text" name="amt" size="5"> from <select name="from"> <?php foreach ($accounts as $a) { echo "<option value="" . $a['id'] . " ">" . $a['label'] . "</option>"; } ?> </select> to <select name="to"> <?php foreach ($accounts as $a) { echo "<option value="" . $a['id'] . "">" . $a['label'] . "</option>"; } ?> </select> <input type="submit" name="submit" value="Transfer"> </form> <h3>ACCOUNT BALANCES</h3> <table border=1> <?php foreach ($accounts as $a) { echo "<tr><td>" . $a['label'] . "</td><td>" . $a['balance'] . "</td></tr>"; } ?> </table> </body> </html>

像你所看到的那样,脚本以衔接数据库和关闭自动提交开始.然后履行一个SELECT查询,检索全部帐户的现金收支,接着构造一个有下拉式界面的表格,挑选交易要用到的根源/目标帐户.

最初的表格

一旦表格完成并提交后,两个UPDATE查询就开始实际履行借和贷操作.注意每一个查询的尾端都带有一个mysqli_rollback(),假如查询失利的话,它将被激活.假定没有查询失利的话,新的收支表就通过调用mysqli_commit()储存到数据库中.当时数据库衔接就被关闭.

你可以自己试一下,从Savings #1转0到Current #2.一旦你履行转帐之后,你将看到如图表B所示的均衡表的新后果.

交易完成之后的情况

提醒:当然,这只是一个简单的双号令的事件.普通,当有很多SQL语句要一同履行的时刻,你可以用这种事件模子,一个语句的失利对其他语句有串通的影响.在这些情形下,你会发现将mysqli_query()和mysqli_rollback()的调用紧缩到一个单独的用户自定义的函数中,需求的时刻调用它会越发简便.

正如你所看到的那样,用PHP和MySQL履行一个事件处理模子可以使你的MySQL数据库对查询履行的错误更安定.但是,在你开始着手重写代码和利用这个模子之前,值得注意的是,事件确切会增添系统性能管理的损耗,所以,在实现这个模子之前,做一个本钱效益解析始终是个好主张.

  以上是“<b>一组新的PHP插件实现MySQL的底子事件</b>[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .