【问题标题】:PDO Prepared Statements - cross page [duplicate]PDO 准备好的报表 - 跨页 [重复]
【发布时间】:2016-08-25 03:20:30
【问题描述】:

在我的页面 A.php 中,我准备了这样的查询:SELECT * FROM table WHERE id = ?

据我所知,我可以在此页面中使用相同的 PDO 准备语句。

但是,如果其他页面B.php也需要同样的查询。

我需要再次准备那个查询吗?

或者我如何使用相同的 PDO 准备语句。

或者当我准备相同的查询时,服务器会自动知道已经准备好了?


情况:

如果我有一个数据库网站,那么有数百个页面加载数据就像同样的方式。

当用户打开每个页面时,查询将每次发送。

如何更明智地构建页面?


我不是在寻找使用相同“字符串”的查询;

我的意思是它是准备好的语句,我不再使用 $PDO->prepare。

有可能吗?

【问题讨论】:

  • 您需要将该查询添加到B.php,或者将查询放在单独的文件中,即。 includes.php,并将其包含在 A.phpB.php 中。
  • 但是我怎样才能通过最后一个准备好的语句?
  • 你了解 PHP 处理模型的工作原理吗?每个请求开始时都没有任何分配的资源和先前的变量。你会如何想象/去重用 A.php 和 B.php 之间准备好的 $statement/handle/object?
  • 你不需要说,你可以说:是的,你需要每一页都准备好。我只是想出一种存储准备好的语句的方法。

标签: php mysql pdo


【解决方案1】:

根据定义,PHP 脚本是独立的。因此,当您加载 A.php 时,您必须连接到数据库并运行您的查询。当A.php处理完毕后,PHP会关闭连接。

当您加载 B.php 时,您将不得不做同样的事情

【讨论】:

  • 那么,PDO Prepared statements 不能跨页使用?
  • 没有。您可以通过包含重用查询,但准备好的语句需要与您的数据库建立开放连接
  • 我编辑了我网站的情况,有解决方法吗?或者这只是准备查询每个页面的唯一方法?
  • 你必须每次都准备好。准备好的语句连接一次以解析查询,第二次连接以传递数据
猜你喜欢
  • 1970-01-01
  • 2014-01-20
  • 2013-10-26
  • 2015-08-25
  • 2014-03-12
  • 2016-07-20
  • 2012-06-02
相关资源
最近更新 更多