首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用android与web数据库进行通信

问使用android与web数据库进行通信
EN

Stack Overflow用户
提问于 2013-07-12 16:19:05
回答 1查看 208关注 0票数 2

我有一个安卓应用程序的注册表,其中包括一个用户名和密码。我希望,当用户单击注册表单的提交按钮,然后用户名和密码将被保存到一个网络数据库(mySql数据库)。

当用户按下submit按钮时,就会执行sendPostRequest(givenUsername, givenPassword);。

sendPostRequest()函数是这样的

代码语言:javascript
复制
private void sendPostRequest(String givenUsername, String givenPassword) {

    class SendPostReqAsyncTask extends AsyncTask<String, Void, String>{

        @Override
        protected String doInBackground(String... params) {

            String paramUsername = params[0];
            String paramPassword = params[1];

            System.out.println("*** doInBackground ** paramUsername " + paramUsername + " paramPassword :" + paramPassword);

            HttpClient httpClient = new DefaultHttpClient();


            HttpPost httpPost = new HttpPost("http://10.0.2.2/imon.php");



            BasicNameValuePair usernameBasicNameValuePair = new BasicNameValuePair("paramUsername", paramUsername);
            BasicNameValuePair passwordBasicNameValuePAir = new BasicNameValuePair("paramPassword", paramPassword);


            List<NameValuePair> nameValuePairList = new ArrayList<NameValuePair>();
            nameValuePairList.add(usernameBasicNameValuePair);
            nameValuePairList.add(passwordBasicNameValuePAir);

            try {

                UrlEncodedFormEntity urlEncodedFormEntity = new UrlEncodedFormEntity(nameValuePairList);

                httpPost.setEntity(urlEncodedFormEntity);

                try {

                    HttpResponse httpResponse = httpClient.execute(httpPost);


                    InputStream inputStream = httpResponse.getEntity().getContent();

                    InputStreamReader inputStreamReader = new InputStreamReader(inputStream);

                    BufferedReader bufferedReader = new BufferedReader(inputStreamReader);

                    StringBuilder stringBuilder = new StringBuilder();

                    String bufferedStrChunk = null;

                    while((bufferedStrChunk = bufferedReader.readLine()) != null){
                        stringBuilder.append(bufferedStrChunk);
                    }

                    return stringBuilder.toString();

                } catch (ClientProtocolException cpe) {
                    System.out.println("First Exception caz of HttpResponese :" + cpe);
                    cpe.printStackTrace();
                } catch (IOException ioe) {
                    System.out.println("Second Exception caz of HttpResponse :" + ioe);
                    ioe.printStackTrace();
                }

            } catch (UnsupportedEncodingException uee) {
                System.out.println("An Exception given because of UrlEncodedFormEntity argument :" + uee);
                uee.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);

            if(result.equals("working")){
                Toast.makeText(getApplicationContext(), "HTTP POST is working...", Toast.LENGTH_LONG).show();
            }else{
                Toast.makeText(getApplicationContext(), "Invalid POST req...", Toast.LENGTH_LONG).show();
            }
        }           
    }

    SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
    sendPostReqAsyncTask.execute(givenUsername, givenPassword);     
}

我的imon.php是这样的:

代码语言:javascript
复制
 <?php

 $varUsername = $_POST['paramUsername'];
 $varPassword = $_POST['paramPassword'];

 if($varUsername != "" && $varPassword != ""){

$con = mysql_connect('localhost', 'root', '');
 if (!$con) {
die('Not connected : ' . mysql_error());
 }

  // make foo the current db
  $db_selected = mysql_select_db('post_db', $con);
  if (!$db_selected) {
   die ('Can\'t use foo : ' . mysql_error());
  }

  $sql="INSERT INTO post_table (username,password)
 VALUES
  ('$varUsername ','$varPassword')";

   if (!mysql_query($con,$sql))
    {
    die('Error: ' . mysql_error($con));
     }

echo 'working';
  }else
       {
   echo 'invalid';
       }
   ?>

但是数据不会插入到my-sql数据库中。

我说错了什么??如何将报名表的数据插入web数据库??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-07-12 16:38:20

你不能这么做

代码语言:javascript
复制
mysql_connect('localhost', 'root', '');

然后这样做

代码语言:javascript
复制
if (!mysqli_query($con,$sql))

mysql和mysqli是单独的扩展。您不能与另一个共享资源。

mysqli_query()和mysql_query()的参数顺序不同。mysql_query()的第一个参数是查询。其中,在mysqli_query中,第一个参数是连接资源。您之前也混合了这两种连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17610527

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档