【问题标题】:Creating a Database Connection Object创建数据库连接对象
【发布时间】:2014-04-20 13:01:57
【问题描述】:

对于我的 Web 应用程序,我使用的是 mySQLi 而不是 PDO。

目前,我意识到我会在需要时创建数据库连接。无论是在登录、注册等过程中。

有没有一种方法可以让我创建一个可以一劳永逸地连接到我的数据库的全局变量?所以当我要更改数据库服务器时,我需要搜索所有代码来更改所有数据库参数,例如服务器、用户名、密码等?

【问题讨论】:

  • 是的,有一种方法可以创建一个全局变量

标签: php database mysqli global-variables database-connection


【解决方案1】:

最简单的解决方案实际上是创建一个可以在任何地方使用的对象 $db。

$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);

然后您就可以在任何地方使用它。例如,在函数中,您必须使用 global 关键字访问它。

function dbUtf8(){
  global $db;
  $db->query(" SET NAMES 'utf8' ");
}

【讨论】:

  • 谢谢!这是否意味着我从用户在我的登录脚本访问我的登录/注册页面的那一刻起就初始化了这个全局变量,比如 loginscript.php?当会话处于活动状态时,无论它进入我的站点中的任何页面,我都可以调用变量 $db?或者该变量只能在同一个 php 页面中访问?
  • 此变量仅在声明它的页面范围内可用。不过,您可以在每个其他页面中包含此文件。
  • 我可以创建一个单独的php页面并将其命名为database_cxn.php。在里面,我的代码可以包括: global $db; $db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);然后在每个需要数据库连接的页面中,我都可以这样做: include_once "/common/database_cxn.php";每当我需要查询时,我都会这样做: $result = mysqli_query($db,$sqlquery);我说的对吗?
  • @Madwolf 我不明白您使用的是程序方式。然后你必须做的稍微不同:database_cxn.php:$db = mysqli_connect('localhost', 'my_user', 'my_password', 'my_db');其他文件:include_once "/common/database_cxn.php";$result = mysqli_query($db,$sqlquery);
  • 太好了!感谢您的提示和帮助!
猜你喜欢
  • 2013-12-29
  • 1970-01-01
  • 2010-12-14
  • 2011-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多