Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/285.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编程将数据插入PHP数据库_Java_Php_Android_Send - Fatal编程技术网

Java 通过Android编程将数据插入PHP数据库

Java 通过Android编程将数据插入PHP数据库,java,php,android,send,Java,Php,Android,Send,我想向php服务器发送2个文本变量,并将它们存储在数据库中,这是代码 但我把那个吐司(错误)放在了陷阱里 问题在哪里 安卓端 public class MainActivity extends Activity{ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.la

我想向php服务器发送2个文本变量,并将它们存储在数据库中,这是代码
但我把那个吐司(错误)放在了陷阱里 问题在哪里

安卓端

public class MainActivity extends Activity{
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ArrayList nameValuePairs = new ArrayList<NameValuePair>();
        nameValuePairs.add(new BasicNameValuePair("name","android"));
        nameValuePairs.add(new BasicNameValuePair("mob","203040"));
        //http post
        try{
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost("http://apptest.ir/test/recive.php");
            httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = httpclient.execute(httppost);
            Toast.makeText(this,"Data Send !",Toast.LENGTH_SHORT).show();
        }
        catch(Exception e)
        {
            Toast.makeText(this,"Error !",Toast.LENGTH_SHORT).show();
            e.printStackTrace();
        }
    }  
}
公共类MainActivity扩展活动{
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ArrayList nameValuePairs=新的ArrayList();
添加(新的BasicNameValuePair(“名称”、“安卓”);
添加(新的BasicNameValuePair(“mob”,“203040”);
//http post
试一试{
HttpClient HttpClient=新的DefaultHttpClient();
HttpPost HttpPost=新的HttpPost(“http://apptest.ir/test/recive.php");
setEntity(新的UrlEncodedFormEntity(nameValuePairs));
HttpResponse response=httpclient.execute(httppost);
Toast.makeText(这是“数据发送!”,Toast.LENGTH_SHORT.show();
}
捕获(例外e)
{
Toast.makeText(这个“错误!”,Toast.LENGTH_SHORT.show();
e、 printStackTrace();
}
}  
}
这是PHP文件

<?php
$name = isset($_POST['name']) ? $_POST['name'] : '';
$mob = isset($_POST['mob']) ? $_POST['mob'] : '';
$ins = "INSERT INTO table1 (name,mob) VALUES ('$name','$mob')";
$link = mysql_connect('localhost', 'user1', 'pass1');
if (!$link) {die('Not Conected');}
echo 'Conected';
$db_selected = mysql_select_db('test', $link);
if (!$db_selected) {die ('Can\'t use table1 : ' );}
echo 'Database is Selected'.'<br />';
$saved=mysql_query($ins);
if($saved){echo "Data STORED";} 
?>

如果没有堆栈跟踪,我们很难看到问题出在哪里。但我想问题是因为你在onCreate上做“网络”工作。从3.0版到更新版,这些网络文件应该在线程或异步任务中运行。但您可以通过将下一行放在onCreate(…)中来避免这种情况


首先,没有php数据库这样的东西。您可以有一个前面有php Web服务的数据库。第二,如果需要帮助,请发布异常的堆栈跟踪。虽然在本例中,我可以告诉您它是什么-您不能在UI线程上发出HTTP请求,但您需要在线程或异步任务中执行。
    if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = 
        new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }