1

我一直在挖掘堆栈和各种其他网站,寻找我问题的最佳答案。

我正在以信息管理系统的形式开发一个非常庞大且不断增长的网站怪物。它的核心是运行 PHP 和 MySQL。我刚刚更新了更一般意义上的 mysqli 代码,但没有充分利用所有功能。这是我现在正在努力的一部分。

我已经阅读了大量有关准备好的语句的内容,鉴于重复使用的语句数量,我当然需要使用它。

  • 我正在考虑在大约 50 个准备好的语句的范围内制作,用于近 200 个不同的页面。有推荐的方法吗?我见过的所有例子都涉及 1 或 2。
  • 由于站点的不断增长的性质,使用数据库等,我喜欢以前的 mysql 的一件事是它不需要为每个查询指定连接,但使用 mysqli。因此,我不得不调整我的功能。有没有推荐的解决方案?

我以程序形式而不是面向对象的形式构建了站点,但我总是对建议持开放态度,无论他们使用何种格式。

4

1 回答 1

0

我会尽量做到准确,但我不是专家。

  • 您的第一点:您可能正在寻找Stored Procedures。基本上,您可以存储应用程序的某些逻辑以供重复使用。

    然而,Prepared Statements是不同的。它们基本上意味着“解析一次,执行多次”,但它们不存储在服务器上并跨连接执行。

    在 PHP 中,每个“页面加载”都是一个不同的线程,有自己的变量,因此它与数据库的连接,所以你不能真正再次使用准备好的语句

  • 至于您的第二点,mysql_query()不需要将连接句柄传递给它,因为它假设您要使用最后创建的连接。

例如:

mysql_connect();
mysql_query("SELECT * FROM table");

$link = mysql_connect();
mysql_query("SELECT * FROM table", $link);

是相同的。
因此,隐式使用连接并不意味着可扩展性。

就我所能写的而言,没有提供可能的错误信息,所以我强烈建议您真正阅读此内容,然后如果您有任何问题,这里的每个人都会很乐意回答。

于 2012-07-17T17:15:20.303 回答