ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 连接数据库 框架可以支持MySQL, MSSQL, SQLite, MariaDB, Oracle, Sybase, PostgreSQL数据库。**本文档将以MySQL作为示例讲解**。 <br/><br/> ## 配置数据库连接信息 在/Lib/config.php中配置数据库连接信息,前台、后台等不同入口的应用只需要配置了这一个地方就可以了。 无论连接何种数据库,只需要将配置信息放在数组中并赋值给'DB',框架就可以通过'DB'调用数据库了。 ~~~ //MYSQL 'DB' => array( 'database_type' => 'mysql', //数据库类型 'database_name' => 'name', //库名 'server' => 'localhost', //服务器地址 'username' => 'your_username', //连接账号 'password' => 'your_password', //连接密码 ), ~~~ ~~~ //SQLITE 'DB' => array( 'database_type' => 'SQLite', //数据库类型 'database_file' => 'magphp_sqlite3.db', //SQLITE数据库文件路径 ), ~~~ <br/><br/> ## 覆盖数据库配置 如果您需要在不同应用中配置不同的数据库信息,您可以在应用目录下Lib/config.php中覆盖'DB'这个数组变量的值。 例如: 除了默认的app应用,数据库表为appdb,还有个news资讯应用,数据库表为newsdb。 app应用使用 /Lib/config.php 中的数据库配置。 而 /app/Lib/config.php 中**无'DB'这个配置**。 这时app应用中将会调用appdb这个数据库。 ~~~ // /Lib/config.php // MYSQL 'DB' => array( 'database_type' => 'mysql', //数据库类型 'database_name' => 'appdb', //库名 'server' => 'localhost', //服务器地址 'username' => 'webuser', //连接账号 'password' => 'webuser_password', //连接密码 ), ~~~ news应用使用 /news/Lib/config.php 中的数据库配置。 这时news应用中将会调用newsdb这个数据库。 ~~~ // /news/Lib/config.php // MYSQL 'DB' => array( 'database_type' => 'mysql', //数据库类型 'database_name' => 'newsdb', //库名 'server' => 'localhost', //服务器地址 'username' => 'newsuser', //连接账号 'password' => 'newsuser_password', //连接密码 ), ~~~ <br/><br/> ## 链接数据库 讲过以上配置后,我们就可以在 控制器Controller 和 Model 中连接数据库。 框架提供了 DB() 方法获得一个实例化的数据库类。 例:在控制器Controller中连接数据库 ~~~ class IndexController extends Controller{ public function index(){ $db = DB(); //连接数据库,获得数据库类实例 $userlist = $db->select('users','*'); //取得所有用户信息 } } ~~~ 例:在模型Model中连接数据库 ~~~ //用户模型 class UserModel extends Model{ //获得所有用户 public function userlist(){ $db = DB(); //连接数据库,获得数据库类实例 $userlist = $db->select('users','*'); //取得所有用户信息 return $userlist; } } ~~~ <br/><br/> ## 动态链接数据库 (不推荐) 有时我们需要临时调用其他数据库中的信息,我们就可以将这个数据库配置信息数组传递给DB()方法。 ~~~ class IndexController extends Controller{ public function index(){ //创建数据库配置 $dbconfig = array( 'database_type' => 'mysql', 'database_name' => 'goods', 'server' => 'localhost', 'username' => 'goodsuser', 'password' => 'goodspass', ); //使用DB()方法,并传入数据库配置参数,得到实例化数据库类。 $db = DB($dbconfig); } } ~~~