页:
[1]
|
adodb的事务处理咋没效果呀,高手指点下
数据表都是InnoDB类型的,看下面的代码,第二条sql语句是错的,第一条语句却执行了
[php]
<?php
include dirname(__FILE__).'\adodb\adodb.inc.php';
include dirname(__FILE__).'\bbs\config.inc.php';
$ADODB_FETCH_MODE = ADODB_FETCH_ASSOC;
$db = &ADONewConnection('mysql');
$db->Connect($dbhost, $dbuser, $dbpw, $dbname);
$db->debug=1;
$db->StartTrans();
$db->Execute("update ts_job set fieldid=fieldid+1");
$db->Execute("update ts_joinview set joinid1=joinid+1 where id=11");
$db->CompleteTrans();
?>
[/php]
执行后的结果:
[color=Red]Transactions not supported in 'mysql' driver. Use 'mysqlt' or 'mysqli' driver[/color]
--------------------------------------------------------------------------------
(mysql): update ts_job set fieldid=fieldid+1
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
(mysql): update ts_joinview set joinid1=joinid+1 where id=11
--------------------------------------------------------------------------------
1054: Unknown column 'joinid1' in 'field list'
[color=Red]Smart Rollback occurred[/color]
[[i] 本帖最后由 喜悦村会计 于 2007-10-22 09:41 PM 编辑 [/i]] |
|
顶一下,怎么没会理呢,百度上也找不到资料
大伙不用事务的吗? |
| zhanyou | 2007-10-23 02:44 AM |
|
都说了“Transactions not supported in 'mysql' driver. Use 'mysqlt' or 'mysqli' driver”
<code>define('ROOT_PATH' , '/home/work/web/apache2/htdocs/gzsrv/');
require_once(ROOT_PATH . 'adodb/adodb.inc.php');
$ADODB_FETCH_MODE=ADODB_FETCH_ASSOC;
$OraConn=&ADONewConnection("oci8");
$OraConn->Connect(false,'gzsrv','gzsrv','yddb');
//------------------------------------------------
$OraConn->StartTrans();
$OraConn->Execute("insert into zzy_tmp values('1','zhanyou')");
$OraConn->Execute("insert into zzy_tmp values('1','zhanyou')");
//$OraConn->CompleteTrans();
</code>
没问题
不过我现在不用ADODB了,现PHP自带的PDO函数库了,很好用,速度也比ADODB快 |
|
我就很纳闷,为什么mysql不能这么用,mysql已经支持事务了,这adodb不会这么傻吧
mysql有没有方便点的方法呢? |
| xmlxml | 2007-10-26 11:14 AM |
|
$db = &ADONewConnection('mysql');
改成$db = &ADONewConnection('mysqlt');或者$db = &ADONewConnection('mysqli');就可以了吧
Transactions not supported in 'mysql' driver. Use 'mysqlt' or 'mysqli' driver |
| wleige | 2007-10-27 01:20 PM |
|
| MYSQL是支持事务,但看你选择哪一个引擎了 |
|
Transactions not supported in 'mysql' driver. Use 'mysqlt' or 'mysqli' driver
看到这个错误信息了么
你要用mysqli驱动而不是mysql驱动 |
Powered by Discuz! Archiver 6.1.0
© 2001-2006 Comsenz Inc.
Processed in 0.018116 second(s), 2 queries |