GLOBALS数组中的mysqli连接-错误


mysqli connection in GLOBALS array - error

我最近将一个应用程序从使用旧的mysql函数转移到使用mysqli函数。该应用程序在每次请求时都会连接到数据库,使用旧函数时,您不需要传入数据库连接,但使用新函数即可。我已将连接放置在GLOBALS数组中,供我的mysql库使用。

$GLOBALS['connection'] = mysqli_connect($host, $user, $pass, $db);

问题1:有什么理由不这样做吗?

问题2:当我访问应用程序时,一切似乎都很好,但谷歌机器人似乎遇到了麻烦:

mysqli_real_escape_string()期望参数1为mysqli,给定为null

当连接从$GLOBALS阵列传入时。不知道为什么Googlebot会导致数据库连接不存在?

根据应用程序的复杂性,我会考虑切换到一个专用类(Singleton),它将处理与数据库相关的所有内容。

这里的一些讨论:数据库连接是全局的还是Singleton的?

此外,根据同样的问题,您可能需要查看PDO,这是在PHP中访问数据库的新方法。