为什么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 指令
