MYSQL帖子没有出现

时间:2016-08-02 17:33:26

标签: php android mysql database amazon-web-services

我不认为我的代码中有任何弃用的内容,当我运行PHP脚本时,我获得了成功,但数据库中没有任何内容。 继承了PHP代码。

<?php include "../inc/dbinfo.inc"; ?>
<?php

$connect = new mysqli("DB_SERVER","DB_USERNAME","DB_PASSWORD","DB_DATABASE");

if(!$connect){
die('error');
}
else
{
echo "success";
}

$username = isset($_POST['username']) ? $_POST['username'] : '';  
$password = isset($_POST['password']) ? $_POST['password'] : '';
$givenname = isset($_POST['givenname']) ? $_POST['givenname'] : '';
$email = isset($_POST['email']) ? $_POST['email'] : '';
$phonenumber = isset($_POST['phonenumber']) ? $_POST['phonenumber'] : '';


$sql = "INSERT INTO test(username,password,givenname,email,phonenumber) VALUES ('$username', '$password', '$givenname', '$email', '$phonenumber')";

mysqli_close($connect);
?>

继承Android代码。

 private void insertToDatabase(){
    class SendPostReqAsyncTask extends AsyncTask<String, Void,String >
        @Override
        protected String doInBackground(String... params) {
            String paramUsername = params[0];
            String paramPassword = params[1];
            String paramGivenname = params[2];
            String paramEmail = params[3];
            String paramPhonenumber = params[4];




            List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
            nameValuePairs.add(new BasicNameValuePair("username", username.getText().toString()));
            nameValuePairs.add(new BasicNameValuePair("password", password.getText().toString()));
            nameValuePairs.add(new BasicNameValuePair("givenname", givenName.getText().toString()));
            nameValuePairs.add(new BasicNameValuePair("email", email.getText().toString()));
            nameValuePairs.add(new BasicNameValuePair("phonenumber", phone.getText().toString()));


            try {
                HttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost(Constantss.DB_DNS);
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpClient.execute(httpPost);
                HttpEntity entity = response.getEntity();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return "success";
        }



        @Override
        protected void onPostExecute(String result){
            super.onPostExecute(result);
            Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();
        }

    }


    SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
  //  sendPostReqAsyncTask.execute(uname,pword, gname, lmail,pnumb);
}

我从Android代码获得了成功,但数据库表中没有任何内容。 有谁知道这个问题?谢谢!

2 个答案:

答案 0 :(得分:7)

您没有执行查询。

所以使用:

mysqli_query($connect, $sql);并检查错误。

参考文献:

由于给出了另一个答案,我首先在评论中指出了这一点,所以我们直接设定了记录。

您也可以使用sql注入。使用准备好的声明:

答案 1 :(得分:1)

您不在代码中执行查询。此外,我强烈建议清理用户输入。

这要求SQL注入。咨询:How can I prevent SQL injection in PHP?

运行查询:

$res = mysqli_query($connect, $sql);