PHP服务端开发入门——12、PHP接口

592 阅读3分钟

PHP接口

本节介绍

  • 连接数据库服务器
  • 选择数据库
  • 执行SQL语句
  • 获取执行结果
  • 关闭数据库连接
  • 将结果转为JSON输出到客户端
  • 分页功能
  • 接口测试工具-RESTClient

1. 连接数据库服务器

  • MySQL函数库——mysql_connect()
  • 语法格式:
    • resource mysql_connect($servername, $username, $password)
  • 打开一个到MySQL服务器的连接,如果成功则返回一个MySQL连接标识,一般为资源数据,失败则返回false。
  • 函数中参数的解释:
    • $servename:指明MySQL数据库所在的服务器主机名称,可用IP表示
    • $username:访问该服务器主机的帐号名称
    • $password:访问该服务器的密码

2. 选择数据库

  • MySQL函数库——mysql_select_db()
  • 语法格式:
    • bool mysql_select_db (string database_name, resource link_identifter)
  • 选择一个MySQl数据库,使其成为当前数据库。一个数据库成为当前数据库,那么当前所有的操作都是针对它的。
  • 如果成功则返回true,失败则返回false。
  • **注意:**database_name不区分大小写

3. 执行SQL语句

  • MySQL函数库——mysql_query()
  • 语法格式:
    • resource mysql_query(string query, resource link_identifter)
  • mysql_query()向与指定的连接标识符关联的服务器中的当前数据库发送一条查询由当前数据库执行。
  • 仅对SELECT语句返回一个资源标识符,如果查询执行不正确则返回false。
  • 对于其它类型的SQL语句(INSERT,UPDATE,DELETE),mysql_query()在执行成功时返回true,出错时返回false。

4. 获取执行结果

  • MySQL函数库——mysql_fetch_array()
  • 语法格式:
    • array mysql_fetch_array(resource result, int result_type)
  • 从结果集中取得一行作为关联数组,或数字数组,或二者兼有。返回根据从结果集取得的行生成的数组,如果没有更多行则返回false。

5. 代码示例

  • <?php
      //接口实现
      
      //1 连接数据库服务器
      //方法一
      $conn = mysql_connect("localhost:3306", "root", "root") ;
      
      if ($conn) {
          echo "connect successed! $conn<br />" ;
      } else {
          echo "connect failed!" ;
      }
      
      //方法二
      $conn = mysql_connect("localhost:3306", "root", "root") or die("connect failed!".mysql_error()) ;
      
      
      //2 选择数据库
      mysql_select_db("database_name", $conn) or die("select database failed!".mysql_error()) ;
      
      
      //3 执行SQL语句
      //防止中文乱码
      mysql_query("SET NAMES UTF8") ;
      
      $sql = "select * from database_name" ;
      
      //添加分页功能
      $page = $_GET["page"] ;
      //每页显示5条
      $pageCount = 5 ;
      //定义偏移量
      $offset = ($page - 1) * $pageCount ;
      $sql = $sql." limit $offset, $pageCount" ;
      
      $result = mysql_query($sql) ;
      
      
      //4 获取执行结果
      $array = array() ;
      $i = 0 ;
      
      while ($row = mysql_fetch_array($result)) {
          $array[$i]["XXX"] = $row["XXX"] ;
          $array[$i]["XXXX"] = $row["XXXX"] ;
          $i++ ;
      }
      
      
      
      //5 关闭数据库连接
      mysql_close($conn) ;
      
      
      //6 将结果转为JSON输出到客户端
      $JOSN = json_encode(array(
          "resultCode" => 200,
          "message" => "success",
          "data" => $array
          )) ;
      echo ($JOSN) ;
      
    ?>
    

6. 接口测试工具-RESTClient

(1) 下载RESTClient

(2) 启动RESTClient软件

  • 双击restclient.jar,或者执行命令java -jar restclient.jar启动RESTClient软件。
  • RESTClient主窗体包含:
    • 请求视图(Request)
    • 响应视图(Response)
    • 历史视图(History)
    • 菜单栏(File,Edit,Test,Apidoc,Help)

(3) 使用RESTClient

  • RESTClient支持请求方法详情如下:

(4) 输入访问的URL

  • URL格式:HTTP协议://主机名:端口号/路径

(5) 输入请求体(Body)

  • 如果选择的请求方法是POST或者PUT则可以填写请求体,其他方法则无需填写。

  • 选择请求体类型(Body-Type)

    • 字符串(String):直接在请求体的文本框中填写字符串;
    • 文件(File):浏览并选择地文本文件,文件内容会被读取并作为请求体。
  • 选择内容类型(Content-Type)

    • 根据消息体类型,对照下表,选择跟API匹配的内容类型,如果表中的内容类型都不是API所需要的类型,可以直接在内容类型文本框中输入所需类型。
    • 常见的内容类型详情如下:
  • 选择字符集(Charset)

    • 默认字符集是UTF-8,可以选择所需要的字符集,如果下拉列表里的字符集都不是API所需要的,可以直接在字符集文本框中输入所需的字符集。
  • 填写消息头(Header)

    • 可以根据定义要求,以键值对的形式添加相应的消息头。
    • Header键值对示例:
      • Key   : Accept
        Value : application/json
        
  • 填写Cookie

    • 可以根据API定义要求,以键值对的形式添加相应的Cookie。
    • 如果API需要登录认证,请先使用浏览器完成API登录认证成功后,将浏览器生成的JSESSIONID填写到Cookie中,这样就可以无需登录认证,直接访问API了。
    • Cookie键值对示例:
      • Key   :JSESSIONID 
        Value : MY0REST1COOKIE2DEMO3