Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Android中添加到外部数据库_Java_Php_Android_Mysql_Database - Fatal编程技术网

Java 在Android中添加到外部数据库

Java 在Android中添加到外部数据库,java,php,android,mysql,database,Java,Php,Android,Mysql,Database,我是Android编程新手,我正在尝试接受用户输入并将其添加到我的外部数据库中。现在我的php代码是: <?php mysql_connect("host","login","pass") or die ("Unable to connect to MySQL"); mysql_select_db("database"); mysql_query("INSERT INTO Table (number, format, name, price) VALUES ('".$_REQUEST['

我是Android编程新手,我正在尝试接受用户输入并将其添加到我的外部数据库中。现在我的php代码是:

<?php
mysql_connect("host","login","pass") or die ("Unable to connect to MySQL");
mysql_select_db("database");

mysql_query("INSERT INTO Table (number, format, name, price) VALUES ('".$_REQUEST['number1']."', ".$_REQUEST['format1'].", ".$_REQUEST['name1'].", ".$_REQUEST['price1'].")");

mysql_close();

我没有发现我的php有任何问题,但是当我运行我的程序时,我没有得到任何错误,但是当我查看我的数据库时,似乎没有任何东西被添加。我的Java代码是:

Log.d("debug", "ENTER METHOD ADD");
    new Thread(new Runnable(){
        public void run(){

        ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

        EditText eNumber = (EditText) findViewById(R.id.barcodeEdit);
        EditText eFormat = (EditText) findViewById(R.id.codeFormatEdit);
        EditText eName = (EditText) findViewById(R.id.titleEdit);
        EditText ePrice = (EditText) findViewById(R.id.priceEdit);

        Log.d("debugNumber", eNumber.getText().toString());
        Log.d("debugFormat", eFormat.getText().toString());
        Log.d("debugName", eName.getText().toString());
        Log.d("debugPrice", ePrice.getText().toString());

        nameValuePairs.add(new BasicNameValuePair("number1", eNumber.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("format1", eFormat.getText().toString())); //you can add as many you need
        nameValuePairs.add(new BasicNameValuePair("name1", eName.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("price1", ePrice.getText().toString()));

        try {
                HttpClient httpClient = new DefaultHttpClient();
                HttpPost httpPost = new HttpPost("http://MY_SITE.com/my.php");
                httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                HttpResponse response = httpClient.execute(httpPost);
                HttpEntity entity = response.getEntity();
                //is = entity.getContent();
                Log.d("debug", "ENDED TRY");
            }catch (Exception e) {
                // TODO: handle exception
                Log.e("log_tag", e.toString());
                //return false;
                //Toast.makeText(this, e.toString(), Toast.LENGTH_LONG).show();
            }
        }
    }).start();
Log.d(“调试”,“输入方法添加”);
新线程(newrunnable()){
公开募捐{
ArrayList nameValuePairs=新的ArrayList();
EditText枚举器=(EditText)findViewById(R.id.barcodeEdit);
EditText eFormat=(EditText)findViewById(R.id.codeFormatEdit);
EditText-eName=(EditText)findViewById(R.id.titleEdit);
EditText ePrice=(EditText)findViewById(R.id.priceEdit);
Log.d(“debugNumber”,eNumber.getText().toString());
d(“debugFormat”,eFormat.getText().toString());
Log.d(“debugName”,eName.getText().toString());
Log.d(“debugPrice”,ePrice.getText().toString());
添加(新的BasicNameValuePair(“number1”,eNumber.getText().toString());
nameValuePairs.add(新的BasicNameValuePairs(“format1”,eFormat.getText().toString());//您可以根据需要添加任意数量的
添加(新的BasicNameValuePair(“name1”,eName.getText().toString());
添加(新的BasicNameValuePair(“price1”,ePrice.getText().toString());
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://MY_SITE.com/my.php");
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpClient.execute(httpPost);
HttpEntity=response.getEntity();
//is=entity.getContent();
Log.d(“调试”,“结束尝试”);
}捕获(例外e){
//TODO:处理异常
Log.e(“Log_标记”,e.toString());
//返回false;
//Toast.makeText(例如toString(),Toast.LENGTH_LONG).show();
}
}
}).start();

这就是我添加的代码。我知道我可以很好地连接到数据库,因为我用来搜索数据库的代码工作正常,但由于某种原因,我的add出错了。我已经在一个新线程中运行了代码,因为前几天我了解到不能在程序的主线程中执行这些http请求。我一直在到处寻找答案,但还没有找到答案,也许我只是漏掉了一行,非常感谢您的帮助。

显然代码中没有显示错误。要逐行调试更多代码,您应该修改PHP代码并重试-

<?php
mysql_connect("host","login","pass") or die ("Unable to connect to MySQL");
mysql_select_db("database");

echo $_REQUEST['number1'];
echo $_REQUEST['format1'];
echo $_REQUEST['name1'];
echo $_REQUEST['price1'];

$sql = "INSERT INTO Table (number, format, name, price) VALUES ('".$_REQUEST['number1']."', '".$_REQUEST['format1']."', '".$_REQUEST['name1']."', '".$_REQUEST['price1']."')";

echo $sql;

mysql_query($sql) or die(mysql_error());

mysql_close();
?> 

显然,它没有显示代码错误。要逐行调试更多代码,您应该修改PHP代码并重试-

<?php
mysql_connect("host","login","pass") or die ("Unable to connect to MySQL");
mysql_select_db("database");

echo $_REQUEST['number1'];
echo $_REQUEST['format1'];
echo $_REQUEST['name1'];
echo $_REQUEST['price1'];

$sql = "INSERT INTO Table (number, format, name, price) VALUES ('".$_REQUEST['number1']."', '".$_REQUEST['format1']."', '".$_REQUEST['name1']."', '".$_REQUEST['price1']."')";

echo $sql;

mysql_query($sql) or die(mysql_error());

mysql_close();
?> 

我建议您首先开发一个简单的html表单,以确保您在php方面不会遇到这样的问题

<html xmlns='http://www.w3.org/1999/xhtml'>
   <head >
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
      <title >Form Page: sampleform</title>
   </head>
<body>
<h1>Sample form page</h1>

<form id='sampleform' method='post' action='http://MY_SITE.com/my.php' >
   <p>
   number1: <input type='text' name='number1' />
   </p>
   <p>
   format1: <input type='text' name='format1' />

   </p>

    <p>
   name1: <input type='text' name='name1' />
   </p>

    <p>
   price1: <input type='text' name='price1' />
   </p>

   <p>
   <input type='submit' name='Submit' value='Submit' />
   </p>

</form>

</body>
</html>

表格页:样本表格
示例表单页

第一:

格式1:

名称1:

价格1:

运行此快速测试并让我知道。以便我能进一步帮助你

编辑:

对。问题可能出在insert语句中。请尝试使用以下代码

   <?php
    $mysqli = new mysqli("Your host", "Db username", "Db password", "Db name");

    if ($mysqli->connect_errno) {
        echo "Couldn't connect to database";
    }

    $number = $mysqli->real_escape_string($_POST['number1']);
    $format= $mysqli->real_escape_string($_POST['format1']);
    $name= $mysqli->real_escape_string($_POST['name1']);
    $price= $mysqli->real_escape_string($_POST['price1']);

    $query = "INSERT INTO Table (number, format, name, price) VALUES('$number','$format','$name', '$price');";

    $result = $mysqli->query($query);

if($result)
{
        echo "Successfully inserted";
}

   ?>

我建议您首先开发一个简单的html表单,以确保您在php方面不会遇到这样的问题

<html xmlns='http://www.w3.org/1999/xhtml'>
   <head >
      <meta http-equiv='Content-Type' content='text/html; charset=utf-8'/>
      <title >Form Page: sampleform</title>
   </head>
<body>
<h1>Sample form page</h1>

<form id='sampleform' method='post' action='http://MY_SITE.com/my.php' >
   <p>
   number1: <input type='text' name='number1' />
   </p>
   <p>
   format1: <input type='text' name='format1' />

   </p>

    <p>
   name1: <input type='text' name='name1' />
   </p>

    <p>
   price1: <input type='text' name='price1' />
   </p>

   <p>
   <input type='submit' name='Submit' value='Submit' />
   </p>

</form>

</body>
</html>

表格页:样本表格
示例表单页

第一:

格式1:

名称1:

价格1:

运行此快速测试并让我知道。以便我能进一步帮助你

编辑:

对。问题可能出在insert语句中。请尝试使用以下代码

   <?php
    $mysqli = new mysqli("Your host", "Db username", "Db password", "Db name");

    if ($mysqli->connect_errno) {
        echo "Couldn't connect to database";
    }

    $number = $mysqli->real_escape_string($_POST['number1']);
    $format= $mysqli->real_escape_string($_POST['format1']);
    $name= $mysqli->real_escape_string($_POST['name1']);
    $price= $mysqli->real_escape_string($_POST['price1']);

    $query = "INSERT INTO Table (number, format, name, price) VALUES('$number','$format','$name', '$price');";

    $result = $mysqli->query($query);

if($result)
{
        echo "Successfully inserted";
}

   ?>

您的PHP脚本是否收到了正确的值?我相信是的,我有那些Log.d命令来确保我从文本框中解析了正确的值,有没有办法实际查看发送给PHP脚本的内容?我想我可以在我的php脚本中打印出存储在number1、format1等格式中的内容?对所有字符串变量
'“$\u REQUEST['name1']”进行引用。
并将PDO或mysqli与准备好的语句一起使用。不要将请求直接传递到查询中。您可以接受sql注入。试一试您的PHP脚本是否接收到正确的值?我相信是的,我有那些Log.d命令来确保我从文本框中解析正确的值,是否有办法实际查看发送到PHP脚本的内容?我想我可以在我的php脚本中打印出存储在number1、format1等格式中的内容?对所有字符串变量
'“$\u REQUEST['name1']”进行引用。
并将PDO或mysqli与准备好的语句一起使用。不要将请求直接传递到查询中。您可以接受sql注入。请在我运行android应用程序时尝试,如果页面上打印了什么内容,请刷新我的php页面,因为网页上似乎没有回音。当我运行android应用程序,如果页面上打印了什么内容,请刷新我的php页面,因为网页上似乎没有回音。我运行了这段代码,当我点击submit时,它只打印了项目,可能来自我在php代码中的回音语句,我在文本框中写入,实际上没有向数据库添加任何内容。但是,既然打印了正确的项目,那就意味着php代码接收到了正确的信息,对吗?我的INSERT语句可能有问题,因为php得到了正确的信息。如果您能尽快回复我,情况会更好。不管怎样,我的答案被修改了。检查它并让我尽快知道。这解决了它:D为什么我不能用我原来的intsert完成它?我运行了这段代码,当我点击submit时,它只打印了项目,可能是f