PHP/PDO:在一个页面上编写多个查询的风格?

PHP/PDO:在一个页面上编写多个查询的风格?,php,database,coding-style,pdo,Php,Database,Coding Style,Pdo,我的场景的一个示例是应用程序的大型设置页面,我使用的方法如下: //query 1 $stmt = $dbh->prepare("..."); $stmt->execute(); //query 2 $stmt = $dbh->prepare("..."); $stmt->execute(); 这是编写更多查询的公认方法吗?我不知道应该怎么做(或者谁做什么),我认为编写第二个$stmt是最可接受的方式,因为不需要创建其他变量,对吗 我真想知道人们是怎么做这种事的。。如

我的场景的一个示例是应用程序的大型设置页面,我使用的方法如下:

//query 1
$stmt = $dbh->prepare("...");
$stmt->execute();

//query 2
$stmt = $dbh->prepare("...");
$stmt->execute();
这是编写更多查询的公认方法吗?我不知道应该怎么做(或者谁做什么),我认为编写第二个
$stmt
是最可接受的方式,因为不需要创建其他变量,对吗


我真想知道人们是怎么做这种事的。。如果必须的话,我不想发布“丑陋”的代码。

是的,这是执行查询的完全可以接受的方式。无需创建新的
$stmt
对象。

此外,如果在一个页面内执行多个查询时,在查询过程中遇到错误
与MySQL服务器断开连接
,请始终在查询时发出此消息:这将告诉MySQL驱动程序使用MySQL API的缓冲版本

PDO::setAttribute("PDO::MYSQL_ATTR_USE_BUFFERED_QUERY", true);
因此,您的查询如下所示:

$db->prepare('select * from tablename', array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
$db->execute();

因此,我不需要在准备好每个查询后执行()查询(仅在最后执行)?我不能100%确定您的意思,因为我需要检查查询是否在每次执行后返回行。不,您肯定需要
execute()
处理后返回查询。否则他们就不会被处决。我想说的是,如果出现
连接丢失
错误,那么可以使用
PDO::MYSQL\u ATTR\u use\u BUFFERED\u查询
。我已经更新了答案以消除混淆。他们认为你目前的做法很好。好的,谢谢。我对我的申请很有信心,进展很顺利!