1

I have been trying to connecting a MySQL database using php from android application. I don't know whats wrong with my code below. Can anyone tell me what i need to do.

Here is my code:

  1. sql query

    CREATE TABLE user_detail
    (
    name varchar(30),
    age int(2),
    email varchar(30)
    );
    

2.getdata.php class

<?php

$con=mysql_connect('localhost','root','');
mysql_select_db('hellodb',$con); 

$name = $_POST['name'];
$age = $_POST['age'];
$email = $_POST['email'];

$mysql_query("insert into user_detail(name,age,email) values('{$name}','{$age}','{$email}')");

?>

3.MainActivity.java Class

public class MainActivity extends ActionBarActivity {

    EditText eName,eAge,eEmail;
    Button inButton;
    InputStream is=null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        StrictMode.ThreadPolicy tp = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(tp);
        setContentView(R.layout.main);

        eName= (EditText) findViewById(R.id.etname);
        eAge= (EditText) findViewById(R.id.etage);
        eEmail= (EditText) findViewById(R.id.etemail);
        inButton=(Button)findViewById(R.id.ibutton);

        inButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               String name=""+eName.getText();
               String age=""+eAge.getText();
               String email=""+eEmail.getText();

                List<NameValuePair> nameValuePairs=new ArrayList<NameValuePair>(1);
                nameValuePairs.add(new BasicNameValuePair("name","name"));
                nameValuePairs.add(new BasicNameValuePair("age","age"));
                nameValuePairs.add(new BasicNameValuePair("email","email"));

                try {
                    HttpClient httpClient=new DefaultHttpClient();
                    HttpPost httpPost=new HttpPost("http://10.0.2.2:8888/demo/getdata.php");
                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
                    HttpResponse response=httpClient.execute(httpPost);

                    HttpEntity entity=response.getEntity();

                    is=entity.getContent();

                } catch (ClientProtocolException e) {
                    Log.e("ClientProtocol","LogTag");
                    e.printStackTrace();
                }catch (IOException e) {
                    Log.e("LogTag","IOException");
                    e.printStackTrace();
                }
            }
        });
    }

}
  1. MandroidManifest.xml

  2. main.xml class

    <EditText
        android:id="@+id/etname"
        android:hint="Enter Your Name"
        android:textAlignment="center"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    
    <EditText
        android:id="@+id/etage"
        android:hint="Enter Your Age"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    <EditText
        android:id="@+id/etemail"
        android:hint="Enter Your Email"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content" />
    
    <Button
        android:layout_width="169dp"
        android:layout_height="wrap_content"
        android:text="Insert"
        android:id="@+id/ibutton"
        android:layout_gravity="center_horizontal" />
    

4
  • 3
    remove $ from $mysql_query Commented Mar 30, 2015 at 12:48
  • Add error reporting to the top of your file(s) right after your opening <?php tag error_reporting(E_ALL); ini_set('display_errors', 1); Please, stop using mysql_* functions. They are no longer maintained and are officially deprecated. Learn about prepared statements instead, and use PDO. Commented Mar 30, 2015 at 12:51
  • yes you should not use mysql function if you are using latest php version. let me post answer. Commented Mar 30, 2015 at 12:52
  • the android part is irrelevant to this question. Commented Mar 30, 2015 at 13:27

1 Answer 1

2

Find More about PDO Here

$dbtype     = "mysql";
$dbhost     = "localhost";
$dbname     = "hellodb";
$dbuser     = "root";
$dbpass     = "";

$name  = $_POST['name'];
$age   = $_POST['age'];
$email = $_POST['email'];

// database connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);

$sql = "INSERT INTO user_detail(name,age,email) VALUES (:name,:age,:email)";

$q = $conn->prepare($sql);

$q->execute(array(':name'=>$name,
                  ':age'=>$age,
                  ':email'=>$email));
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.