[安卓] JSON仲机器人 – 部分 2: 出口从数据库PHP支持JSON

大家好, 在第 2 仅此一点将引导你创建数据库, 写入命令从数据库中查询数据并生成JSON.

相关的一些MySQL和PHP知识的文章,你应该注意, 如果你从来没有听说过它,它的好, 很简单的遣散.

我会引导你在建立数据库 Hostinger 为方便和同步.

创建数据库

你去到数据库 - > MySQL数据库创建数据库:

database in hostinger

输入一个名称DATABSE, 用户名和密码结束.

tao database

创建后,, 单击刚刚创建的数据库,并选择界面的phpMyAdmin到phpMyAdmin.
现在我们开始创建数据库表. 我们的应用程序是旧情人 (昔日的恋人), 这将需要创建 2 £: 用户表存储的用户列表, ,还列出old_lover保存用户的前男友.

表用户包括 2 学校是:

nick -> kiểu: varchar(50)	định dạng: utf8_unicode_ci	là khóa chính
pass -> kiểu: varchar(50)	định dạng: utf8_unicode_ci

表old_lover包括 6 学校:

id	-> kiểu:int(11)		AUTO_INCREMENT là khóa chính
nick	-> kiểu: varchar(50)	định dạng: utf8_unicode_ci		
name -> kiểu: varchar(50)	định dạng: utf8_unicode_ci
begin_date -> kiểu: varchar(10)
end_date -> kiểu: varchar(10)
phone -> kiểu: varchar(15)

在天BEGIN_DATE日期和结束日期在爱与离别的一天=)). 我们并不需要比较什么,但只是为了显示你应该使用VARCHAR而不是日期或日期时间NHE.

在创建数据库之后, 你去插入,并插入一些记录表. 他这样的例子:
表用户:
table user

BANG old_lover:
table old_lover

使用PHP数据库连接和JSON输出

在本节中,我们开始触及编程语言PHP的, 它类似于Java, 唯一略有不同的指挥结构轻微.

你和文件 - >管理文件
文件

文件管理界面显示会看起来像你的电脑上, 你总是可以在这里写一个PHP文件或创建一个新的文件夹来保存得很好, 我将创建一个目录 移动 这里, 建立更多文件夹 旧情人仲移动

old-lover folder

我们将分步走: 配置 - >连接 - >写查询命令 - >导出JSON

写配置文件

注意: 从这时开始,你把数据库和主机上的博客, 您使用的数据库Hostinger, 用户,… 将形成u520716618_lover,… 如上面我们已经设置
我们将编写 1 文件配置数据库名称, 用户, 通过对连接服务. 在旧情人的文件夹创建 1 文件命名 config.php文件 用下面的内容:

<?php
	define("DB_HOST", "localhost");
	define("DB_USER", "mobile-demo-json");
	define("DB_PASSWORD", "mobile-demo-json");
	define("DB_DATABASE", "mobile-demo-json");
?>

在这里面,你需要修改,​​以适应数据库的用户名, 数据库名称, 密码,你已经把步骤创建一个数据库. 在这里,当前主机不到哪里PHP文件都放在 本地主机, 您的用户名和密码 移动演示JSON

写文件的数据库连接

接下来,我们创建 1 文件命名 db_connect.php 执行与内容数据库连接:

<?php
     
    class DB_Connect {
     
        // constructor
        function __construct() {
     
        }
     
        // destructor
        function __destruct() {
            // $this->close();
        }
     
        // Connecting to database
        public function connect() {
            require_once 'config.php';
            $con = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
            mysql_set_charset('utf8', $con);
            mysql_select_db(DB_DATABASE);
            return $con;
        }
     
        public function close() {
            mysql_close();
        }
     
    } 
?>

包含数据库操作函数写文件

本文件包含的所有功能来操作数据库的选择, 插入, 更新,…
你创建的文件 db_functions.php 内容:

<?php

    class DB_Functions {

        private $db;

        // constructor
        function __construct() {
            include_once './db_connect.php';
            $this->db = new DB_Connect();
            $this->db->connect();
        }
        
        public function selectall($sql){
            $result=mysql_query($sql);
            while($row=@mysql_fetch_assoc($result)){
                $result_all[]=$row;
            }
            mysql_free_result($result);
            return @$result_all;
        }
        
        public function selectone($sql){
            $result=mysql_query($sql);
            $resultone=@mysql_fetch_assoc($result);
            mysql_free_result($result);
            return $resultone;
        }
        
        function numrow($sql){
            $result=mysql_query($sql);
            $row=mysql_num_rows($result);
            mysql_free_result($result);
            return $row;
        }

        function update($table,$data,$where){
            $sql='';
            foreach($data as $key => $value){
                $sql .=", $key = '".mysql_real_escape_string($value)."'";
            }

            $sql='UPDATE '.$table. ' SET '.trim($sql, ',').' WHERE ' .$where;
            return mysql_query($sql);
        }

        function insert($table, $data){
            $field_list='';
            $value_list='';
            foreach($data as $key => $value){
                $field_list .=",$key";
                $value_list .=",'".mysql_real_escape_string($value)."'";
            }

            $sql='INSERT INTO '.$table.'('.trim($field_list, ',').') VALUES ('.trim($value_list, ',').')';
            return mysql_query($sql);
        }

        function delete($table,$where){
            $sql="DELETE FROM $table WHERE $where";
            return mysql_query($sql);
        }
    }

?>

这些功能使得自己没有太多的解释, 我看到了一些显着的东西如下:

  • __construct() 构造函数, 它是连接到数据库,所以我们应该包括 (包括) 文件 db_connect.php 在这.

  • 该声明采取了他的记录使用 mysql_fetch_assoc 因为它使我们能够检索表的列名的记录, 如果你使用 mysql_fetch_array 这将需要两个列名,并在表中的列数,然后我们的JSON输出不必要的盈余, 因为它变得沉重.

  • 我已经使用 mysql_real_escape_string 以匹配其关键伴随更新函数的值, 插入. 这使我们能够保留值和避免语法错误SQL查询甚至在它具有一定的特殊字符.

写作JSON输出

这是我们的最终文件, 文件将直接互动与And​​roid.
我们将有 4 操作如下:
– 注册
– 注册
– 找前男友名单
– 添加到列表中的前情人

因此,我们将有 4 打开浏览这些措施收到来自机器人的请求时,.

<?php header('Content-Type: application/json; charset=utf-8'); ?>

<?php
    
    $METHOD_LOGIN = 1;
    $METHOD_REGISTER = 2;
    $METHOD_GET_OLD_LOVER = 3;
    $METHOD_ADD_OLD_LOVER = 4;

    include_once 'db_functions.php';

    $db = new DB_Functions();

    $nick = $_POST['nick'];    
    $method = $_POST['method'];

    // for test from web browser
    $test = $_GET['test'];
    if($test==true){
        $nick = $_GET['nick'];
        $method = $METHOD_GET_OLD_LOVER;
    }
    
    if($method == $METHOD_LOGIN) {
        $sql = "SELECT * FROM user WHERE nick = '$nick'";
        $rs = $db->selectone($sql);

        if($rs['pass'] == $_POST['pass']){
            $result['login'] = true;
        }else{
            $result['login'] = false;
        }
    }

    if($method == $METHOD_REGISTER) {
        $data = array();
        $data['nick'] = $nick;
        $data['pass'] = $_POST['pass'];
        
        $rs = $db->insert('user', $data);
        if($rs){
            $result['register'] = true;
        }else{
            $result['register'] = false;
        }
    }

    if($method == $METHOD_GET_OLD_LOVER) {
        $sql = "SELECT * FROM old_lover WHERE nick = '$nick'";
        $result = $db->selectall($sql);
    }

    if($method == $METHOD_ADD_OLD_LOVER){
        $data = array();
        $data['nick'] = $nick;
        $data['name'] = $_POST['name'];
        $data['phone'] = $_POST['phone'];
        $data['begin_date'] = $_POST['begin_date'];
        $data['end_date'] = $_POST['end_date'];

        $rs = $db->insert('old_lover', $data);
        if($rs){
            $result['add'] = true;
        }else{
            $result['add'] = false;
        }
    }
      
    $json = json_encode($result, JSON_PRETTY_PRINT); 
    // $json = json_encode($result); // use on hostinger
    print_r($json);
?>

该文件中的代码也是完全可以理解的, 我注意到,我已经使用了变量$测试采取的是二次GET事务, 即获得的测试数据浏览器的道路上. 您可以通过访问以下链接来测试他的前恋人列表测试:
HTTPS://www.cachhoc.net/mobile/demo-json/lover.php?测试=真&尼克=相关

这就是它,然后. 在接下来的文章中,我们开始转向了Android操作.

在本教程的帖子 JSON仲机器人nguyenvanquan7826