| 
 
 一、前端  
????????前端以安卓为例子,使用HttpURLConnection 进行http请求运行服务器中的php代码,获得返回值。HttpURLConnection 进行http请求的具体使用方法如下:安卓HttpURLConnection 进行http请求(传递数据 获取数据 主线程禁止网络请求)以get方式为例_m0_49558200的博客-CSDN博客_安卓connection https://blog.csdn.net/m0_49558200/article/details/122387710?spm=1001.2014.3001.5501  
? ? ? ? 其余前端的方式只要可以进行http请求均可。  
? ? ? ? 安卓中示例代码如下  
Button btn3=(Button)findViewById(R.id.button3);//将此事件封装进按钮中
        btn3.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                new Thread(){//网络请求需要建立新线程
                    @Override
                    public void run()
                    {
                        try {
                            String sql="SELECT  id " +
                                    "FROM name";//此处为sql语句
                            sql= Uri.encode(sql);//编码
                            String path="http://xxx.xxx.xxx.xxx/db.php?sql="+sql;
                            URL url = new URL(path);
                            //2. HttpURLConnection
                            HttpURLConnection conn=(HttpURLConnection)url.openConnection();
                            //3. set(GET)
                            conn.setRequestMethod("GET");
                            conn.setConnectTimeout(6000);
                            conn.setReadTimeout(6000);//响应时间
                            //获取返回值
                            StringBuffer buffer = new StringBuffer();
                            BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
                            String line = "";
                            while ((line = reader.readLine()) != null) {
                                buffer.append(line);
                            }
                            reader.close();
                            Log.i("res",buffer.toString());//查询结果
                            
                        }
                        catch(MalformedURLException e){
                            e.printStackTrace();
                        }
                        catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }.start();
            }
        });  
二、后端(服务器)部分  
connec.php文件如下,用来连接数据库  
<?php
header("Content-type: text/html;charset=utf8");
$host='xxx.xxx.xxx.xxx'//主机的ip地址(内网)
$user='xxxxxx'//数据库的用户名 初始应该都是root
$password='xxxxx'//数据库密码
$dbName='xxxxx'//数据库名
$con=new mysqli($host,$user,$password,$dbName);
con->query("SET NAMES utf8");
?>  
接下来是正式进行数据库增删改查的php文件,文件名为db.php  
<?php
header("Content-type: text/html;charset=utf8");
include 'connect.php'
//引用刚才的文件,连接数据库
$sql=$_GET["sql"];
//此处我的逻辑是通过get方式获取到sql语句。
//如果想要将sql语句写死在php中,可以直接
//$sql='xxxxxxxx'//此处为sql语句
if($con->$connect_error){
die("error");
}
else{
$sql=urldecode($sql);//我的sql语句由前端传递到后端,进行了编解码操作
//不需要解码可以不用上面一句话
$res=$con->query($sql);
print_r($res->fetch_all(RDO::FETCH_ASSOC));
//返回值是一个数组,故不可以用echo返回
}
?>  
示例的mysql语句:  
select id from name  
数据表name  
   
查询结果  
I/sql?langaues: Array(    [0] => Array        (            [0] => 3        )    [1] => Array        (            [0] => 2500        )    [2] => Array        (            [0] => 4554        )    [3] => Array        (            [0] => 45514        )    [4] => Array        (            [0] => 422554        ))
  
注意:1.get方式传递的sql语句需要进行编码后再传递。  
? ? ? ? ? ?2.php语言当返回值为一个数组时,不可以使用echo,要用print_r。否则返回值只有一个“Array”字符串。  
? ? ? ? ? ?3.要先在服务器中安装MYSQL数据库与PHP功能。  
? ? ? ? ? ?4.在微信小程序中需要为服务器购买域名再使用wx.request进行http请求。?? 
                
        
        
    
  
 
 |