app inventor 要连接MySQL数据库,一般是通过在服务器上部署一个php作为连接的接口,然后app inventor中使用http客户端连接接口,获取或发送数据。


部署php文件

  1. 在服务器上创建数据库

  2. 将以下内容的前几行中引号内文字修改为你的参数,保存为mysql.php文件,并上传到服务器。

请注意,此代码没有充分考虑安全性,请自行进行防注入等操作。


<?php
    $servername = "这里输入你的mysql地址"; //若php文件和mysql在同一服务器,可以写为localhost 或者 127.0.0.1
    $username = "这里输入用户名";
    $password = "这里输入密码";
    $database = "这里输入数据库名";
    if (isset($_REQUEST['sql'])){
        $con = mysqli_connect($servername,$username,$password,$database);
        if ($con){
            $sql =$_REQUEST['sql'];
            $sql =urldecode($sql);
            $startwith = strtolower(substr($sql,0,6));
            $actions = array("select", "insert","update","delete");
            if (in_array($startwith,$actions)){
                $result=mysqli_query($con,$sql);
                if($result){
                    $data =array();
                    if($startwith =="select"){
                        $array = array();
                        $inum = 0;
                        while ($row=mysqli_fetch_assoc($result)){
                            $array[$inum]=$row;
                            $inum++;
                        }
                        $data['result'] = $array;
                    }
                    $data['affected'] = mysqli_affected_rows($con);
                    $return = json_encode($data);
                    header("HTTP/1.1 200 OK");
                    echo $return;
                }
                else{
                    header( "HTTP/1.1 400 Bad Request" );
                    echo '{"error":"sql parse failed"}';
                }
            }else{
                header( "HTTP/1.1 400 Bad Request" );
                echo '{"error":"action not recognized"}';
            }
        }else{
            header("HTTP/1.1 500 Internal Server Error");
            echo '{"error":"connection failed"}';
        }
        mysqli_close($con);
    }
    else{
        header( "HTTP/1.1 400 Bad Request" );
        echo '{"error":"no sql specified"}';
    }
?>


- 为安全起见,以上代码只支持增改删查四项动作

- 所有返回都是json格式。

- 若有错误发生,返回值中会有error字段。

- 若没有错误,返回值中总会有affected字段,表明返回数据或者受到影响的数据条数。

- 若为select操作,返回值还包含result字段,包含所有返回记录的数组。


使用http客户端与服务器交互

ORUNkkrlfOeo.png


标签: HTTP客户端, MySQL

添加新评论