为什么我的PHP事务mysql查询总是不行

//关闭自动提交$_mysql->autocommit(false);//sql语句$sql.="SELECTUSERFROMcms_userWHEREUSER='got... //关闭自动提交
$_mysql->autocommit(false);

//sql语句
$sql .="SELECT USER FROM cms_user WHERE USER='goto8080' LIMIT 1;"; //查询语句,正确在mysql里面正确,但是在这里就执行不到。这是怎么回事呢
$sql .="INSERT INTO cms_match (
`saishi`,
`time`,
`leix`,
`duiz`,
`username`,
`zhudui`,
`kedui`,
`content`,
`reg_date`
)VALUES(
'saishi',
'time',
'leix',
'duiz',
'username',
'zhudui',
'kedui',
'content',
NOW()
)
;";

if($_mysql->multi_query($sql)){
//第一条是否正确
$_success = $_mysql->affected_rows == 1 ? true:false;

//第二条是否正确
$_mysql->next_result();
$_success2 = $_mysql->affected_rows == 1 ? true:false;

if($_success && $_success2){//如果两条都正确
$_mysql->commit();
echo '完美提交';
}else{//不正确
$_mysql->rollback();
echo '回滚';
}
}else{
echo '第一条SQL语句错误'.$_mysql->error;
exit();
}

//最后开启自动提交
$_mysql->autocommit(true);

大神给菜鸟的我解答一下..我执行其他的比如修改,删除都可以完美提交。数据库也连接正常,数据库结构也正确。
php里面也不报错,但是一直是回滚的。
展开
 我来答
songyipangbuo
2014-12-20 · TA获得超过744个赞
知道小有建树答主
回答量:190
采纳率:100%
帮助的人:256万
展开全部

首先查询操作是不能使用affected_rows去验证返回多少行的,affected_rows是影响行数,对于查询操作affected_rows永远返回-1.对于affected_rows仅适用于insert,delete,update操作.

所以这里验证查询有多少返回行的时候应使用结果集的num_rows属性

//第一条是否正确
$_success = ($result = $_mysql->store_result() and $result->num_rows == 1) ? true:false;
$result->free();
盖雅工场,全流程劳动力管理系统
2023-07-25 广告
选择一个好的 PHP 排班系统需要考虑以下几个因素:1. 功能需求:首先需要考虑系统需要具备哪些功能,比如排班管理、员工管理、考勤管理、报表统计等。确保所选系统能够满足您的需求。2. 易用性:考虑系统的界面是否友好,操作是否简单易用。一个好... 点击进入详情页
本回答由盖雅工场,全流程劳动力管理系统提供
hustnzj2010
2014-12-19 · TA获得超过424个赞
知道小有建树答主
回答量:415
采纳率:0%
帮助的人:334万
展开全部
注销掉$_mysql->rollback();
看看错误是什么?
追问
没有错误。查询的没有返回时真 。
怎么解决呢?
返回了 1 行
可能是 共 1 行受到影响 然后才能返回真。
返回了 1 行 不能返回真吧。返回就是回滚失败
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式