Heim  >  Artikel  >  Backend-Entwicklung  >  为什么mysql事务执行不了?解决办法

为什么mysql事务执行不了?解决办法

WBOY
WBOYOriginal
2016-06-13 13:36:47922Durchsuche

为什么mysql事务执行不了?
php代码片断:  

/*-----数据库连接参数--*/  

$host="localhost";  

$user="root";  

$pwd="xxx";  

$database="luntan";  

/*-----数据库连接-*/  

$db=mysql_connect($host,$user,$pwd);  

$sql="START TRANSACTION;  

  SELECT @A:=MAX(iTopicId) FROM lun_topic;  

  INSERT INTO lun_topic VALUES(@A+1,'主题','内容','作者',NOW(),1);  

  COMMIT;";  

$result=mysql_db_query($database,$sql);//该句执行不了,也不报错  

   

  

表lun_topic  

iTopicId,  

vTitle,  

txtMessage,  

vPostId,  

dPostDateTime,  

iAreaId  

  

---------------------------  

  

注意在MySql中,只有INNODB和BDB类型的表支持事务处理,而缺省的MYISAM类型不支持,可以在创建表的时候指定表类型  

CREATE TABLE t (i INT) TYPE = INNODB;  

  

也可以转换已存在表的表类型  

ALTER TABLE t TYPE=INNODB  

---------------------------  


------解决方案--------------------
你的 $sql 要分作 4 句执行

php 的 mysql 函数,除了定义存储过程外,一次只能执行一条 sql 指令

说的不严密,其实定义存储过程也只是一条指令
------解决方案--------------------
php 的 mysql 函数,除了定义存储过程外,一次只能执行一条 sql 指令

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn