require vs require_once PDO连接——致命错误:在非对象上调用成员函数prepare()


require vs require_once PDO connection -- Fatal error: Call to a member function prepare() on a non-object

我在页面底部看到这个致命错误,但没有马上看到它。错误指向一个变量,$sql,一个sql字符串,它应该是一个sql字符串。代码是"$s = $pdo->prepare($sql);"。它似乎工作正常,访问数据库并检索正确的信息。我之前在另一个页面上使用了这段代码,创建了一个新的PDO连接。最后,在阅读了我无法再次找到的关于此错误的评论之一之后,我决定尝试将require_once()更改为require()。这招奏效了。谢谢大家。

我猜我需要创建一个新的PDO连接来使用这个新的准备。我读到PHP在脚本完成运行时关闭连接。我相信prepare($sql)没有被接受,不是因为它是一个字符串,而是因为与旧类或另一个名为prepare的函数有关的其他一些问题。

你没有问这个问题。

我认为你在使用旧的方式来避免代码发布。

你读过一次关于require_的文档吗?您在外部文件中创建PDO对象。如果你使用require,它会每次都创建。如果你使用require_once,它只会被创建一次。