【问题标题】:Insert Data into PHP Database via Android Programing通过 Android 编程将数据插入 PHP 数据库
【发布时间】:2013-07-04 09:21:27
【问题描述】:

我想将 2 个文本变量发送到 php 服务器并将它们存储在数据库中,这是代码
但我得到了那个吐司(错误)的地方 问题出在哪里?

安卓端

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();
        }
    }  
}

这是 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";} 
?>

【问题讨论】:

  • 首先,没有像php数据库这样的东西。您可以在其前面有一个带有 php web 服务的数据库。其次,如果您需要帮助,请发布异常的堆栈跟踪。虽然在这种情况下我可以告诉你它是什么——你不能在 UI 线程上发出 HTTP 请求,你需要在 Thread 或 AsyncTask 中进行。

标签: java php android send


【解决方案1】:

没有堆栈跟踪,我们很难看出问题出在哪里。但我想问题是因为你正在从 onCreate 做“网络”的东西。从 3.0 版到更新的这些网络东西,您应该在 Thread 或 AsyncTask 中运行。但是您可以尝试通过将下一行放入 onCreate(...) 来避免这种情况

    if (android.os.Build.VERSION.SDK_INT > 9) {
        StrictMode.ThreadPolicy policy = 
        new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);
    }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-13
    • 2017-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多