喜悦国际村 » PHP高级编程 » adodb的事务处理咋没效果呀,高手指点下

页: [1]
喜悦村会计2007-10-22 01:31 PM
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]]

喜悦村会计2007-10-23 01:33 AM
顶一下,怎么没会理呢,百度上也找不到资料
大伙不用事务的吗?

zhanyou2007-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快

喜悦村会计2007-10-24 03:19 AM
我就很纳闷,为什么mysql不能这么用,mysql已经支持事务了,这adodb不会这么傻吧
mysql有没有方便点的方法呢?

xmlxml2007-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

wleige2007-10-27 01:20 PM
MYSQL是支持事务,但看你选择哪一个引擎了

syre2007-10-31 02:23 AM
Transactions not supported in 'mysql' driver. Use 'mysqlt' or 'mysqli' driver

看到这个错误信息了么
你要用mysqli驱动而不是mysql驱动


查看完整版本: adodb的事务处理咋没效果呀,高手指点下


Powered by Discuz! Archiver 6.1.0  © 2001-2006 Comsenz Inc.
Processed in 0.018116 second(s), 2 queries