ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
##方案一:读取数据库方式开发首页接口 流程: 从数据库获取信息 -> 封装 -> 生成接口数据 应用场景:数据时效性,比较高的系统 学习要点: 1. 掌握如何获取数据; 2. 掌握如何将获取的数据生成通信数据; 详细流程: http请求 -> 服务器 -> 查询数据 -> 返回数据 *文件链接:var/www/app/list.php* ``` // 封装输出数据类 require_once('./response.php'); // 引入的 db.php 数据库类需要进行改动 require_once('./db.php'); $page = isset($_GET['page']) ? $_GET['page'] : 1; $pageSize = isset($_GET['pagesize']) ? $_GET['pagesize'] : 1; if (!is_numeric($page) || !is_numeric($pageSize)) { return Response::show(401, '数据不合法'); } $offset = ($page-1) * $pageSize; $sql = "select * from mk_user where score != 0 order by id desc limit " . $offset . "," . $pageSize; // $sql = "select * from mk_user"; // $result = mysql_query($sql, $connect); // echo mysql_fetch_row($result); // var_dump($result); try { $connect = Db::getInstance()->connect(); } catch(Exception $e) { return Response::show(403, '数据库连接失败', $users); } $result = mysql_query($sql, $connect); $users = array(); while ($user = mysql_fetch_assoc($result)) { $users[] = $user; } if($users) { return Response::show(200, '首页数据获取成功', $users); } else { return Response::show(400, '首页数据获取失败', $users); } ``` *文件链接:var/www/app/db.php* ~~~ class Db { static private $_instance; // 保存类的实例 static private $_connectSource; // 连接的资源 private $_dbConfig = array( 'host' => '192.168.2.110', 'user' => 'root', 'password' => 'root', 'database' => 'muke', ); // 构造函数需要设置成私有,防止被其他类实例化 private function __construct() { } // 访问实例的公共方法 static public function getInstance() { // 是否实例,如果没有则实例化类 if (!self::$_instance instanceof self) { self::$_instance = new self(); } return self::$_instance; } public function connect() { if(!self::$_connectSource) { self::$_connectSource = mysql_connect($this->_dbConfig['host'], $this->_dbConfig['user'], $this->_dbConfig['password']); if(!self::$_connectSource) { // 此处注意,如果数据库连接失败,需要抛出一个异常,以供连接时使用,连接需要用 try-catch 测试连接。 throw new Exception('mysql connect error ' . mysql_error()); // die('mysql connect error'. mysql_error()); } mysql_select_db($this->_dbConfig['database'], self::$_connectSource); mysql_query("set names UTF8", self::$_connectSource); return self::$_connectSource; } } } ~~~