doushang4293 2014-11-11 10:54
浏览 44
已采纳

如何在PHP中为Android应用程序后端编写REST Web服务?

Currently, I am developing an Android application with involves client server architecture. It is said to me that I have to write REST web service in PHP for back end communication. At that time I didn't know about RESTful architecture and etc..

In last 3 days, I learned much about REST web services and tried many tutorials. Then, I tried some code from tutorials and from SO. What I have tried so far is as follows:

I have three php files, a database named xyz and table named user_accounts with basic user details in phpmyadmin. And I have installed Advanced REST client on my browser. All code is in WWW directory of WAMP server under folder named my project. So, let me show some code:

1. db_connect.php

 <?php

            define("SERVER", '127.0.0.1');
            define("USER", 'root');
            define("PASSWORD", '');
            define("DB", 'xyz');


            $con = new mysqli(SERVER,USER,PASSWORD,DB);

            if ($con->connect_errno){
                die("Database Connection Failed");
                exit();

            }

In second file I have a function named adduser for adding user records into the database :
index.php :

    <?php
            require_once('db_connect.php');

           $response = array();

           $result = "";


           function adduser($firstname, $lastname, $email, $password) {


            global $app;

            $req = $app->request();

            $firstname= $req->params['firstname'];

            $lastname= $req->params['lastname'];

            $email = $req->params['email'];

             $password = $req->params['password'];


    $stmt = $con->prepare("INSERT INTO user_accounts (first_name,last_name,email,password)VALUES (?,?,?,?)");

                        $stmt->bind_param('ssss', $firstname, $lastname, $email, $password); 

                        $stmt->execute();

                        $result = $stmt->close();


        }

                if($result){

                          $response["success"] = 1;

                          $response["message"] = "account successfully created.";

                          echo json_encode($response);

                }

                else{

                     $response["success"] = 0;

                     $response["message"] = "An error occurred during registration.";

                     echo json_encode($response);
                 }



            ?>    

When I test it using advanced REST client by giving url :

http://127.0.0.1/my project/index.php/adduser

and method POST and parameters:

firstname=somename&lastname=name&email=a@b.gmail.com&password=101010

It shows following response:

{"success":0,"message":"An error occurred during registration."}

I can not identify where the error is. I am new to this. Please help if anything wrong.

  • 写回答

1条回答 默认 最新

  • duancan7914 2014-11-11 11:06
    关注

    your should try this:

    $affected_rows = $stmt->rowCount();
    

    Update:

    then check if row count is greater than 0.

    <?php
            require_once('db_connect.php');
    
           $response = array();
    
           $result = "";
    
    
    function adduser($firstname, $lastname, $email, $password) {
        global $app;
        $req = $app->request();
        $firstname= $req->params['firstname'];
        $lastname= $req->params['lastname'];
        $email = $req->params['email'];
        $password = $req->params['password'];
    
        $stmt = $con->prepare("INSERT INTO user_accounts (first_name,last_name,email,password)VALUES (?,?,?,?)");
    
        $stmt->bind_param('ssss', $firstname, $lastname, $email, $password); 
        $stmt->execute();
    
        return $stmt->rowCount();
    }
    
    $adduser = addUser($firstname, $lastname, $email, $password);
    
    if($adduser > 0){
        $response["success"] = 1;
        $response["message"] = "account successfully created.";
    
        echo json_encode($response);
    } else{
        $response["success"] = 0;
        $response["message"] = "An error occurred during registration.";
    
        echo json_encode($response);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大