Я пишу приложение для вставки данных в базу данных MySQL. Я написал SQL-запрос в PHP, и когда я ввожу значения в приложение Android, я не вижу никаких ошибок в log cat, но значения не сохраняются в базе данных.
Вот код PHP:
<?php $connect = mysqli_connect("localhost","root","","easyassigndroid"); if(mysqli_connect_errno($connect)) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } else { echo "success"; } $username = isset($_POST['sPhone']) ? $_POST['sPhone'] : ''; $password = isset($_POST['sPassword']) ? $_POST['sPassword'] : ''; $query = mysqli_query($connect, "insert into users (sphone, spassword) values ('$username' ,'$password') "); mysqli_close($connect); ?>
Вот часть Android:
protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.register_lecturer); phonenum = (EditText) findViewById(R.id.id_phone); password = (EditText) findViewById(R.id.id_password); sPhone = phonenum.toString(); sPassword = password.toString(); registerLecturer=(Button)findViewById(R.id.lecturerregister); registerLecturer.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub httpclient = new DefaultHttpClient(); httppost = new HttpPost("http://10.0.2.2/project/insert.php"); try { nameValuePairs = new ArrayList<NameValuePair>(); nameValuePairs.add(new BasicNameValuePair("sphone", sPhone)); nameValuePairs.add(new BasicNameValuePair("spassword", sPassword)); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); response = httpclient.execute(httppost); } catch(Exception e) { e.printStackTrace(); } } }); }
Я новичок как для Android, так и для PHP-кодирования. Может ли кто-нибудь сказать мне, где проблема в моем коде? Мне нужно это для моей проектной работы.
Только один момент: чтобы получить ценность из Android EditText, мы используем
x.getText().toString();
где x – объект EditText, правильно? надеюсь, что это поможет вообще.
Но поскольку это делается в onCreate (), а не внутри onClick () – вы должны изменить:
nameValuePairs.add(new BasicNameValuePair("sphone", sPhone));
в
nameValuePairs.add(new BasicNameValuePair("sphone", phonenum.getText().toString()));
И аналогично для другого. Приветствия.
Как я вижу, вы используете «sPhone» и «sphone» в качестве ключей. Я бы рекомендовал иметь его как с одинаковыми именами.
nameValuePairs = new ArrayList<NameValuePair>(2); nameValuePairs.add(new BasicNameValuePair("sphone", sPhone)); nameValuePairs.add(new BasicNameValuePair("spassword", sPassword));
И в PHP
$_POST['sphone'] $_POST['spassword']