PDO和缓存,如何在数据库类中实现它


PDO and caching, how to implement it in a database class?

使用

PDO 和 MySQL 时,缓存我知道我将在同一页面上多次使用的结果有什么好处吗?还是PDO/MySQL会自动处理这种事情?

如果我应该自己做,我应该存储查询的实际结果,还是我可以只将PDOStatements存储在缓存中并重用它们?

当然,我可以将我知道要在页面上多次使用的任何结果存储在变量中,但是让我的数据库类透明地处理这种事情似乎更干净。例如,我希望能够调用 $DB->get_username_by_id($id),而不必担心它是直接来自数据库还是来自缓存。

或者,也许我会放弃创建自己的数据库类的想法,如果你们中的任何一个人可以指出我一个超轻量级、易于使用、有效、多功能的数据库类,它可以在共享主机上与 PDO 和 MySQL 一起工作......

可以帮助你 PHP PDO 缓存

如果你使用PDO,那么PDO::P repare就是你的朋友:

调用 PDO::p repare() 和 PDOStatement::execute() 对于将使用不同参数值多次发出的语句,通过允许驱动程序协商查询计划和元信息的客户端和/或服务器端缓存来优化应用程序的性能,并通过消除手动引用参数的需要来帮助防止 SQL 注入攻击。

http://php.net/manual/en/pdo.prepare.php

好吧,id总是建议使用现有的库而不是自定义的东西,除非你有很好的借口不这样做。在这种情况下,id说Doctrine DBAL,因为您似乎没有使用对象来保存数据。如果您想使用完整的OOP路线并将数据映射到特定对象,请使用完整的Doctrine ORM。