无法使用来自 Android 的快速 Android 网络将数据输入到 MySQL
Can't Input Data to MySQL Using Fast Android Network From Android
我尝试使用 Android 和 MYSQL 为服务器 REST API 创建简单的 CRUD,PHP。
我使用 Fast Android 网络库,一切正常并正在运行,但是如果我单击 "Tambah Data / Add Data" 它显示“添加到数据库失败”。我这里有一些函数 Post Data.
的代码
public void tambahData(String nim, String nama, String kelas){
//koneksi ke file create.php, jika menggunakan localhost gunakan ip sesuai dengan ip kamu
AndroidNetworking.post("http://192.168.1.5/mahasiswa/create.php")
.addBodyParameter("id_mahasiswa", "") //id bersifat Auto_Increment tidak perlu diisi/(diisi NULL) cek create.php
.addBodyParameter("nim",nim) //mengirimkan data nim_mahasiswa yang akan diisi dengan varibel nim
.addBodyParameter("nama", nama) //mengirimkan data nama_mahasiswa yang akan diisi dengan varibel nama
.addBodyParameter("kelas", kelas) //mengirimkan data kelas_mahasiswa yang akan diisi dengan varibel kelas
.setPriority(Priority.MEDIUM)
.build()
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
//Handle Response
Log.d(TAG, "onResponse: " + response); //untuk log pada onresponse
Toast.makeText(getApplicationContext(),"Data berhasil ditambahkan" , Toast.LENGTH_SHORT).show();
//memunculkan Toast saat data berhasil ditambahkan
}
@Override
public void onError(ANError error) {
//Handle Error
Log.d(TAG, "onError: Failed" + error); //untuk log pada onerror
Toast.makeText(getApplicationContext(),"Failed add to database", Toast.LENGTH_SHORT).show();
//memunculkan Toast saat data gagal ditambahkan
}
});
}
}
这里 create.php 我有 :
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
//include file connect.php untuk menyambungkan file create.php dengan database
include "config.php";
//inisialisasi variabel yang akan ditampung dan diolah dengan query
$id = $_POST['id_mahasiswa'];
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$kelas = $_POST['kelas'];
//inisialiasi query INSERT
$query = "INSERT INTO tb_mahasiswa(id_mahasiswa,nim,nama,kelas) VALUES ('','$nim','$nama','$kelas')";
//pemanggilan fungsi mysqli_query untuk mengirimkan perintah sesuai parameter yang diisi
$sql = mysqli_query($connect, $query);
//pengkondisian saat fungsi mysqli_query berhasil atau gagal dieksekusi
if($sql){
$response["value"] = 1;
$response["message"] = "Sukses tambah data";
echo json_encode($response); //merubah respone menjadi JsonObject
}else{
$response["value"] = 0;
$response["message"] = "Gagal tambah data";
echo json_encode($response); //merubah respone menjadi JsonObject
}
//tutup koneksi
mysqli_close($connect);
}
?>
怎么了?谁能解决这个问题?谢谢
您缺少将 ID 值传递给查询。在您的 table 中,如果您的 ID 列不是空字段并且不是自动生成的。查询不会执行。如果你 post 你的数据库 table 结构可能很好理解。
我尝试使用 Android 和 MYSQL 为服务器 REST API 创建简单的 CRUD,PHP。 我使用 Fast Android 网络库,一切正常并正在运行,但是如果我单击 "Tambah Data / Add Data" 它显示“添加到数据库失败”。我这里有一些函数 Post Data.
的代码public void tambahData(String nim, String nama, String kelas){
//koneksi ke file create.php, jika menggunakan localhost gunakan ip sesuai dengan ip kamu
AndroidNetworking.post("http://192.168.1.5/mahasiswa/create.php")
.addBodyParameter("id_mahasiswa", "") //id bersifat Auto_Increment tidak perlu diisi/(diisi NULL) cek create.php
.addBodyParameter("nim",nim) //mengirimkan data nim_mahasiswa yang akan diisi dengan varibel nim
.addBodyParameter("nama", nama) //mengirimkan data nama_mahasiswa yang akan diisi dengan varibel nama
.addBodyParameter("kelas", kelas) //mengirimkan data kelas_mahasiswa yang akan diisi dengan varibel kelas
.setPriority(Priority.MEDIUM)
.build()
.getAsJSONObject(new JSONObjectRequestListener() {
@Override
public void onResponse(JSONObject response) {
//Handle Response
Log.d(TAG, "onResponse: " + response); //untuk log pada onresponse
Toast.makeText(getApplicationContext(),"Data berhasil ditambahkan" , Toast.LENGTH_SHORT).show();
//memunculkan Toast saat data berhasil ditambahkan
}
@Override
public void onError(ANError error) {
//Handle Error
Log.d(TAG, "onError: Failed" + error); //untuk log pada onerror
Toast.makeText(getApplicationContext(),"Failed add to database", Toast.LENGTH_SHORT).show();
//memunculkan Toast saat data gagal ditambahkan
}
});
}
}
这里 create.php 我有 :
<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
//include file connect.php untuk menyambungkan file create.php dengan database
include "config.php";
//inisialisasi variabel yang akan ditampung dan diolah dengan query
$id = $_POST['id_mahasiswa'];
$nim = $_POST['nim'];
$nama = $_POST['nama'];
$kelas = $_POST['kelas'];
//inisialiasi query INSERT
$query = "INSERT INTO tb_mahasiswa(id_mahasiswa,nim,nama,kelas) VALUES ('','$nim','$nama','$kelas')";
//pemanggilan fungsi mysqli_query untuk mengirimkan perintah sesuai parameter yang diisi
$sql = mysqli_query($connect, $query);
//pengkondisian saat fungsi mysqli_query berhasil atau gagal dieksekusi
if($sql){
$response["value"] = 1;
$response["message"] = "Sukses tambah data";
echo json_encode($response); //merubah respone menjadi JsonObject
}else{
$response["value"] = 0;
$response["message"] = "Gagal tambah data";
echo json_encode($response); //merubah respone menjadi JsonObject
}
//tutup koneksi
mysqli_close($connect);
}
?>
怎么了?谁能解决这个问题?谢谢
您缺少将 ID 值传递给查询。在您的 table 中,如果您的 ID 列不是空字段并且不是自动生成的。查询不会执行。如果你 post 你的数据库 table 结构可能很好理解。