首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDO -一个查询中的多个插入/更新

问PDO -一个查询中的多个插入/更新
EN

Stack Overflow用户
提问于 2014-10-20 14:05:48
回答 1查看 1.4K关注 0票数 1

我编写了一些代码,这些代码构建了一个多个insert和update语句的查询,这些语句是在页面加载结束时执行的。它过去正常工作。我正在开发系统(Ubuntu14.04,PHP5.5.3-Ubuntu)上编写类似的优化代码,但我不再能够在一个PDO查询中运行多个语句:

我做了什么

在页面呈现过程中,我构建了一个SQL语句,它看起来有点像:

代码语言:javascript
复制
insert into <table> (col1,col2,col3) VALUES (?,?,?);
update <table> set col1 = ?, col4 = ? where id = ?;
insert into <table> (col1,col2,col3) VALUES (?,?,?);
...

当页面被呈现并且我确信没有问题时,我使用PDO的包装器来执行查询。包装器函数的重要部分包括

代码语言:javascript
复制
$database = new PDO("mysql:host=<host>;dbname=<dbname>", <user>, <pwd>, 
               array(PDO::MYSQL_ATTR_INIT_COMMAND => "set names 'utf8'"));
$database->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt = $database->prepare($sql);
$stmt->execute($params);

由于某些原因,我无法在一次命中中执行该语句,相反,PDO只执行第一个查询,尽管$stmt->queryString仍然保存整个查询。有人能帮我解决这个问题吗。

EN

回答 1

Stack Overflow用户

发布于 2014-10-20 14:48:41

发现问题:如果其中一个查询抛出异常,PDO就会悄然失败。在我的例子中,第一个查询是可以的,但是第二个查询是抛出一个完整性约束失败错误,所以看起来只运行第一个查询。

一位智者刚刚告诉我:,不要射杀信使,打断我的询问

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26467624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档