我使用下面的代码进行数据库连接
像登录,获取数据等所有事情都运行良好.现在我突然收到异常错误消息
我有一个模型类,我正在创建新的数据库.
我制作的每一个模型,都是从模型类扩展而来的.
因为您的Model类在其构造函数中实例化一个新的Database对象,所以每次实例化一个Model(或任何扩展它的类)时,您实际上都在打开一个新的数據库连接.如果你创建了几个Model对象,那么每个对象都有自己独立的数据库连接,这种连接不常见,通常是不必要的,不能很好地利用资源,但是由于它耗尽了所有服务器的可用连接,因此也是有害的.
例如,循环以创建Model对象的数组:
然后,使用它,控制代码(将实例化您的模型的代码)本身应该只调用┅次新的Database().然后,必须将控制代码创建的对象传递给所有模型的构造函数.
对于您实际需要为模型使用不同的独立数据库连接的用例,您可以将其茭给另一个.特别是,这对测试很有用.您可以替换测试数据库对象或模拟对象.
正如评论中所提到的,使用持久连接可能是一种解决方案,但不是我建议的解决方案. PDO将尝试重用具有相同凭据的现有连接(与您的所有连接一样),但您不一定希望跨脚本执行缓存连接.如果您决定以这种方式执行此操作,则需要将该属性传递给Database构造函数.
虽然它运行良好并且不难实现,但在您的情况下,它会使测试更加困难,因为您必须使用同名的测试类替換整个Database类.您不能轻易地在实例的基础上替换测试类.
将单例模式应用于数据库: