Java 谁可以使用localhost phpmyadmin将数据插入mysql数据库?

Java 谁可以使用localhost phpmyadmin将数据插入mysql数据库?,java,php,android,mysql,phpmyadmin,Java,Php,Android,Mysql,Phpmyadmin,我试图通过wamp服务器将一行插入我的msql数据库。数据库位于本地主机上 我使用android stuido作为ide,在日志中没有任何错误或警告。我找不到我的代码有什么问题。我猜问题在于是httpclient还是php文件,因为新的用户名和密码已成功传递到NewProductActivty.java。如何解决这个问题 以下是我的java和php代码: functions.php: <?php $DB_HOST = "localhost"; $DB_DATABASENAME = "kim

我试图通过wamp服务器将一行插入我的msql数据库。数据库位于本地主机上

我使用android stuido作为ide,在日志中没有任何错误或警告。我找不到我的代码有什么问题。我猜问题在于是httpclient还是php文件,因为新的用户名和密码已成功传递到
NewProductActivty.java
。如何解决这个问题

以下是我的java和php代码:

functions.php

<?php
$DB_HOST = "localhost";
$DB_DATABASENAME = "kimnerede";
$DB_USERNAME = "root";
$DB_PASS = "";
define("BASARISIZ", "-1");
define("BASARILI", "1");
define("ARKADAS_BULUNAMADI_ERROR", "-2");
define("ARKADAS_ZATEN_MEVCUT_ERROR", "-3");
define("PROFIL_BULUNAMADI_ERROR", "-4");

function dbConnect() {

    $db = mysqli_connect(DB_HOST, DB_DATABASENAME, DB_PASS, DB_USERNAME);

    if (!$db)
        return null;

    mysqli_query($db, 'SET NAMES utf8');

    return $db;

    }
<?php

//require_once('functions.php'); 

include('functions.php');
if((!isset($_POST['name']) || empty($_POST['name'])) &&
   (!isset($_POST['pass']) || empty($_POST['pass'])))
    die(BASARISIZ);

$name= $_POST['name'];
$pass= $_POST['pass'];

$db = dbConnect();

if(arkadasEkle($db, $name, $pass))
    die(BASARILI);

die(BASARISIZ);

?>
addclient.php

<?php
$DB_HOST = "localhost";
$DB_DATABASENAME = "kimnerede";
$DB_USERNAME = "root";
$DB_PASS = "";
define("BASARISIZ", "-1");
define("BASARILI", "1");
define("ARKADAS_BULUNAMADI_ERROR", "-2");
define("ARKADAS_ZATEN_MEVCUT_ERROR", "-3");
define("PROFIL_BULUNAMADI_ERROR", "-4");

function dbConnect() {

    $db = mysqli_connect(DB_HOST, DB_DATABASENAME, DB_PASS, DB_USERNAME);

    if (!$db)
        return null;

    mysqli_query($db, 'SET NAMES utf8');

    return $db;

    }
<?php

//require_once('functions.php'); 

include('functions.php');
if((!isset($_POST['name']) || empty($_POST['name'])) &&
   (!isset($_POST['pass']) || empty($_POST['pass'])))
    die(BASARISIZ);

$name= $_POST['name'];
$pass= $_POST['pass'];

$db = dbConnect();

if(arkadasEkle($db, $name, $pass))
    die(BASARILI);

die(BASARISIZ);

?>
通过在
LoginActivity.java
中创建对象来调用此类:

public void SignUpClicked(View view) {

        new NewProductActivity(this).execute(UserName.getText().toString(),Password.getText().toString());

    }

如果没有收到任何错误,则应确保在php.ini文件中将其设置为错误:

另外,请确保已设置:

error_reporting = E_ALL & ~E_NOTICE

connection.php

<?php
$connection = mysqli_connect("localhost", "root", "", "kimnerede") or die("unable to connect to the database");
?>
<?php
$name = $_REQUEST['name'];
$pass = $_REQUEST['pass'];

include_once("connection.php");

$query = "INSERT INTO deneme123 (name, pass) VALUES ('$name', '$pass')";
mysqli_query($connection, $query) or die("unable to execute the query");
?>
将此行添加到清单文件中

<uses-permission android:name="android.permission.INTERNET" />


你很容易被认为应该访问你的数据库,而这应该有助于防止Chropices邮递员在Chrome中扩展,检查你的PHP是否在运行。永远不要存储明文密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,请确保您在它们上安装或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。您能告诉我在asynctask中上下文值在哪里声明以及为什么使用它吗?哪个值作为参数传递给onPostExecute?asynctask为什么使用参数?在InsertData.php中,为什么使用$\u REQUEST而不是$\u POST?顺便谢谢你的帮助!上下文在活动中声明。context=getApplicationContext();它用于显示进度对话框&Toast(上下文是Toast和ProgressDialog中的一个强制参数)布尔值是onPostExecute中使用的参数。如果添加数据操作已完成,则doInBackground中将返回true。否则,返回false。在onPostExecute中,检查该布尔值是否为true或false。AsyncTask 1)。Params,执行时发送到任务的参数类型。2). 进度,后台计算期间发布的进度单位的类型。3). 结果,背景计算结果的类型。请参阅:-$\u请求是旧请求。可以通过get或POST获取数据
public class DBOperations {
public boolean addDataToDB(String name, String pass){
        try{
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
            try {
                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost("http://www.sample.com/phpfilelocation/insertData.php");
                List<NameValuePair> nameValuePairs = new ArrayList<>();
                nameValuePairs.add(new BasicNameValuePair("name", name));
                nameValuePairs.add(new BasicNameValuePair("pass", pass));
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                httpclient.execute(httpPost);
                return true;
            }
            catch (Exception ex) {
               ex.printStackTrace();
               return false;
            }
        }
        catch(Exception e){
            e.printStackTrace();
            return false;
        }
    }
}
public class NewProductActivity extends AsyncTask<String, Void, Boolean>{
String name, pass;
ProgressDialog progressDialog;
DBOperations dbo = new DBOperations():

        public NewProductActivity(String name, String pass){
            this.name = name;
        this.pass = pass;
        }

        @Override
        protected void onPreExecute() {
            progressDialog = ProgressDialog.show(context, "Please wait", "Sending data...", true);
        }

        @Override
        protected Boolean doInBackground(String... params) {
            try{
            boolean added = dbo.addDataToDB(name, pass);
            return added;
        }
        catch(Exception e){
            e.printStackTrace();
            return false;
        }
        }

      @Override
        protected void onPostExecute(Boolean result) {
        if(result){
            Toast.makeText(context, "successfully added.", Toast.LENGTH_SHORT).show();
        }
        else{
            Toast.makeText(context, "failed to add data.", Toast.LENGTH_SHORT).show();
        }

        progressDialog.dismiss();
    }   
}
new NewProductActivity("name", "pass").execute();
<uses-permission android:name="android.permission.INTERNET" />