Php Android应用程序在mysql中插入列名而不是值?
我正在尝试构建一个应用程序,将我的书籍插入Mysql数据库。我可以从应用程序中成功插入,但在我的数据库中,列名是插入,而不是插入值 Addinfo.javaPhp Android应用程序在mysql中插入列名而不是值?,php,android,mysql,insert,Php,Android,Mysql,Insert,我正在尝试构建一个应用程序,将我的书籍插入Mysql数据库。我可以从应用程序中成功插入,但在我的数据库中,列名是插入,而不是插入值 Addinfo.java import android.app.Activity; import android.os.AsyncTask; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import andro
import android.app.Activity;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLEncoder;
public class AddInfo extends Activity {
EditText Name,Email,Mobile;
String Bookname,Author,Status;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_info_layout);
Name=(EditText)findViewById(R.id.et_name);
Email=(EditText)findViewById(R.id.et_email);
Mobile=(EditText)findViewById(R.id.et_Mobile);
}
public void saveInfo (View view)
{
Bookname=Name.getText().toString();
Author=Email.getText().toString();
Status=Mobile.getText().toString();
BackgroundTask backgroundTask = new BackgroundTask();
backgroundTask.execute(Bookname,Author,Status);
finish();
}
class BackgroundTask extends AsyncTask <String,Void,String>
{
String add_info_url;
@Override
protected void onPreExecute() {
add_info_url="http://abc.ga/StudentRegister.php";
super.onPreExecute();
}
@Override
protected String doInBackground(String... args) {
String name,email,mobile;
name=args[0];
email=args[1];
mobile=args[2];
try {
URL url=new URL(add_info_url);
HttpURLConnection httpURLConnection =(HttpURLConnection) url.openConnection();
httpURLConnection.setRequestMethod("POST");
httpURLConnection.setDoOutput(true);
OutputStream outputStream=httpURLConnection.getOutputStream();
BufferedWriter bufferedWriter= new BufferedWriter(new OutputStreamWriter(outputStream,"UTF-8"));
String data_string = URLEncoder.encode("Bookname","UTF-8")+"="+URLEncoder.encode("Bookname","UTF-8")+ "&"+
URLEncoder.encode("Author","UTF-8")+"="+URLEncoder.encode("Author","UTF-8")+ "&"+
URLEncoder.encode("Status","UTF-8")+"="+URLEncoder.encode("Status","UTF-8");
bufferedWriter.write(data_string);
bufferedWriter.flush();
bufferedWriter.close();
InputStream inputStream =httpURLConnection.getInputStream();
inputStream.close();
httpURLConnection.disconnect();
return "Book Added Successfully";
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(String result) {
Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG).show();
}
}
}
导入android.app.Activity;
导入android.os.AsyncTask;
导入android.support.v7.app.AppActivity;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.Toast;
导入java.io.BufferedReader;
导入java.io.BufferedWriter;
导入java.io.IOException;
导入java.io.InputStream;
导入java.io.OutputStream;
导入java.io.OutputStreamWriter;
导入java.net.HttpURLConnection;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.net.urlcoder;
公共类AddInfo扩展活动{
编辑文本名称、电子邮件、手机;
字符串:书名、作者、状态;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.add_info_layout);
Name=(EditText)findViewById(R.id.et_Name);
电子邮件=(EditText)findViewById(R.id.et_电子邮件);
Mobile=(EditText)findviewbyd(R.id.et_Mobile);
}
公共void saveInfo(视图)
{
Bookname=Name.getText().toString();
Author=Email.getText().toString();
Status=Mobile.getText().toString();
BackgroundTask BackgroundTask=新的BackgroundTask();
backgroundTask.execute(书名、作者、状态);
完成();
}
类BackgroundTask扩展了AsyncTask
{
字符串add\u info\u url;
@凌驾
受保护的void onPreExecute(){
添加\u信息\u url=”http://abc.ga/StudentRegister.php";
super.onPreExecute();
}
@凌驾
受保护的字符串doInBackground(字符串…args){
字符串名称、电子邮件、手机;
name=args[0];
email=args[1];
mobile=args[2];
试一试{
URL URL=新URL(添加信息URL);
HttpURLConnection HttpURLConnection=(HttpURLConnection)url.openConnection();
httpURLConnection.setRequestMethod(“POST”);
httpURLConnection.setDoOutput(true);
OutputStream OutputStream=httpURLConnection.getOutputStream();
BufferedWriter BufferedWriter=新的BufferedWriter(新的OutputStreamWriter(outputStream,UTF-8));
字符串数据\u String=URLEncoder.encode(“Bookname”、“UTF-8”)+“=”+URLEncoder.encode(“Bookname”、“UTF-8”)+“&”+
URLEncoder.encode(“作者”、“UTF-8”)+“=”+URLEncoder.encode(“作者”、“UTF-8”)+“&”+
urlcoder.encode(“状态”,“UTF-8”)+“=”+urlcoder.encode(“状态”,“UTF-8”);
bufferedWriter.write(数据字符串);
bufferedWriter.flush();
bufferedWriter.close();
InputStream InputStream=httpURLConnection.getInputStream();
inputStream.close();
httpURLConnection.disconnect();
返回“添加图书成功”;
}捕获(格式错误){
e、 printStackTrace();
}捕获(IOE异常){
e、 printStackTrace();
}
返回null;
}
@凌驾
受保护的void onProgressUpdate(void…值){
super.onProgressUpdate(值);
}
@凌驾
受保护的void onPostExecute(字符串结果){
Toast.makeText(getApplicationContext(),result,Toast.LENGTH_LONG.show();
}
}
}
StudentRegister.php
我创建了一个HTML文件来测试下面的PHP,它工作得很好,但从未从android插入
<?php
//StudentRegister.php
if($_SERVER['REQUEST_METHOD']=='POST'){
include 'DatabaseConfig.php';
$con = mysqli_connect($HostName,$HostUser,$HostPass,$DatabaseName);
$Bookname=$_POST["Bookname"];
$Author=$_POST["Author"];
$Status=$_POST["Status"];
//$Date=$_POST["Date"];
$Sql_Query = "INSERT INTO Books values
(DEFAULT,'$Bookname','$Author','$Status');";
if(mysqli_query($con,$Sql_Query))
{
echo 'Done';
}
else
{
echo 'Something went wrong';
}
}
mysqli_close($con);
?>
上述问题已得到解决 这是由URLENCODER引起的,在做了下面的更改之后,它工作得很好
data_string = URLEncoder.encode("Bookname","UTF-8")+"="+URLEncoder.encode(Bookname,"UTF-8")