0
EditText tv_username;
    EditText tv_firstname;
    EditText tv_age;
    Button reg;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        tv_username = (EditText) findViewById(R.id.username);
        tv_firstname = (EditText) findViewById(R.id.firstname);
        tv_age = (EditText) findViewById(R.id.age);
        reg = (Button) findViewById(R.id.register);



        reg.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub

                HttpClient httpclient = new DefaultHttpClient();
                HttpPost httppost = new HttpPost("http://10.0.2.2/regandroid.php");
                if(httppost != null)
                {
                    Context context = getApplicationContext();
                    CharSequence text = "Connected";
                    int duration = Toast.LENGTH_SHORT;

                    Toast toast = Toast.makeText(context, text, duration);
                    toast.show();

                }
                try
                {
                    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
                    nameValuePairs.add(new BasicNameValuePair("username", tv_username.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("firstname", tv_firstname.getText().toString()));
                    nameValuePairs.add(new BasicNameValuePair("age", tv_age.getText().toString()));

                    httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response = httpclient.execute(httppost);

                }
                catch(Exception e)
                {
                    e.printStackTrace();
                }

これは私のphpコードです

            $username = $_POST['username'];
             $firstname = $_POST['firstname'];
            $age = $_POST['age'];

           $query = mysql_query($connect, "insert into users
               (username, firstname,age) values             ('$username' 
                ,'$firstname','$age') ");


                ?>

おそらく私のphpコードに問題があり、問題が何であるかを見つけることができませんでした.これは、データベースに接続されているにもかかわらず、データを挿入できない私のPHPおよびJavaコードです. 自分がどんな間違いをしたのか理解できません。

4

2 に答える 2

3

mysql_queryのパラメーターの順序が間違っています。

mysql_query ( string $query [, resource $link_identifier = NULL ] )

リンク識別子/接続は 2 番目のパラメーターを介して追加する必要がありますが、クエリは最初のパラメーターを介して追加する必要があります。

変化する:

$query = mysql_query($connect, "insert into users(username, firstname,age) values ('$username', '$firstname', '$age')");

$query = mysql_query("insert into users(username, firstname,age) values ('$username', '$firstname', '$age')", $connect);

また、外部データをクエリに直接挿入しているため、コードは SQL インジェクションに対してオープンです。PDO で準備済みステートメントを使用するか、それがオプションでない場合は少なくともmysql_real_escape_stringを使用します。

于 2013-06-14T11:43:13.653 に答える