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

发布于 2024-09-18 05:02:46 字数 342 浏览 7 评论 0原文

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

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

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

这是否是编写更多查询的可接受方法?我不知道应该如何完成(或者谁做了什么),我认为编写第二个 $stmt 是最可接受的方式,因为不需要创建其他变量,我我说得对吗?

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

An example of my scenario is a large setup page for an application, the method I use is for example:

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

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

Would this be an accepted method to write more queries? I have no clue how it's supposed to be done (or who does what, rather), I assume writing the second $stmt is the most acceptable way, as there is no need to create other variables, am I right?

I really wish to know how people do this sort of thing.. I don't want to release 'ugly' code if I have to.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

成熟稳重的好男人 2024-09-25 05:02:46

是的,这是完全可以接受的执行查询的方式。无需创建新的 $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();

Yes, that is perfectly acceptable way to execute queries. No need to create new $stmt objects.

Also, if you ever get the error Lost connection to MySQL server during query when performing multiple queries within a single page, always issue this with the query: This will tell the MySQL driver to use the buffered versions of the MySQL API.

PDO::setAttribute("PDO::MYSQL_ATTR_USE_BUFFERED_QUERY", true);

So that your query looks like:

$db->prepare('select * from tablename', array(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY => true));
$db->execute();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文