我有一张预订表格,必须将信息保存到 MySQL
数据库。在第一个 Axtivity 用户填写表单时,我会保存信息并将其传递到第二个 Activity ,其中保存按钮。当我单击“保存”按钮时,没有任何内容进入数据库。
这是 Activity 1
static String Name;
static String Email;
static String Phone;
static String Comment;
static String DateTime;
static String numberOfPeople;
private EditText editText1, editText3, editText2, editText4, datePicker, editText5; //, txtTime;
private Button btnMenues, btnTimePicker, btnCalendar;
CustomDateTimePicker custom;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reservation);
custom = new CustomDateTimePicker(this,
new CustomDateTimePicker.ICustomDateTimeListener() {
@Override
public void onSet(Dialog dialog, Calendar calendarSelected,
Date dateSelected, int year, String monthFullName,
String monthShortName, int monthNumber, int date,
String weekDayFullName, String weekDayShortName,
int hour24, int hour12, int min, int sec,
String AM_PM) {
((EditText) findViewById(R.id.datePicker)).setText(calendarSelected.get(Calendar.DAY_OF_MONTH)
+ "/" + (monthNumber+1) + "/" + year
+ ", " + hour12 + ":" + min
+ " " + AM_PM);
}
@Override
public void onCancel() {
}
});
/**
* Pass Directly current time format it will return AM and PM if you set
* false
*/
custom.set24HourFormat(false);
/**
* Pass Directly current data and time to show when it pop up
*/
custom.setDate(Calendar.getInstance());
findViewById(R.id.btnCalendar).setOnClickListener(
new OnClickListener() {
@Override
public void onClick(View v) {
custom.showDialog();
}
});
editText1 = (EditText) findViewById(R.id.personName);
editText3 = (EditText) findViewById(R.id.personPhone);
editText2 = (EditText) findViewById(R.id.personEmail);
editText4 = (EditText) findViewById(R.id.personComment);
datePicker = (EditText) findViewById(R.id.datePicker);
editText5 = (EditText) findViewById(R.id.editText5);
btnCalendar = (Button) findViewById(R.id.btnCalendar);
btnMenues = (Button) findViewById(R.id.continueWithReservation);
btnMenues.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Reservation.this, ReservationSecond.class);
String Name = editText1.getText().toString();
String Email = editText2.getText().toString();
String Phone = editText3.getText().toString();
String Comment = editText4.getText().toString();
String DateTime = datePicker.getText().toString();
String numberOfPeople = editText5.getText().toString();
intent.putExtra("Name", Name);
intent.putExtra("Email", Email);
intent.putExtra("Phone", Phone);
intent.putExtra("Comment", Comment);
intent.putExtra("DateTime", DateTime);
intent.putExtra("numberOfPeople", numberOfPeople);
startActivity(intent);
}
});
}
这是 Activity 2
String getName;
String getEmail;
String getPhone;
String getComment;
String getDateTime;
String getnumberOfPeople;
private Button btnMenues;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reservation_second);
btnMenues = (Button) findViewById(R.id.finish);
btnMenues.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Bundle extras = getIntent().getExtras();
if (extras != null) {
getName = extras.getString("Name");
getEmail = extras.getString("Email");
getPhone = extras.getString("Phone");
getComment = extras.getString("Comment");
getDateTime = extras.getString("DateTime");
getnumberOfPeople = extras.getString("numberOfPeople");
Log.e("err", getName + " " + getEmail + " " + getPhone + " " + getComment + " " + getDateTime + " " + getnumberOfPeople );
}
new SummaryAsyncTask().execute((Void) null);
startActivity(getIntent());
}
});
}
class SummaryAsyncTask extends AsyncTask<Void, Void, Boolean> {
private void postData(String getNameToData, String getEmailData, String getPhoneData,
String getCommentData, String getDateTimeData, String getnumberOfPeopleData) {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://link.to.site/saveReservation.php");
try {
ArrayList<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("Name", getNameToData));
nameValuePairs.add(new BasicNameValuePair("Email", getEmailData));
nameValuePairs.add(new BasicNameValuePair("Phone", getPhoneData));
nameValuePairs.add(new BasicNameValuePair("Comment", getCommentData));
nameValuePairs.add(new BasicNameValuePair("DateTime", getDateTimeData));
nameValuePairs.add(new BasicNameValuePair("numberOfPeople", getnumberOfPeopleData));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response = httpclient.execute(httppost);
}
catch(Exception e)
{
Log.e("log_tag", "Error: "+e.toString());
}
}
@Override
protected Boolean doInBackground(Void... params) {
postData(getName, getEmail, getPhone, getComment, getDateTime, getnumberOfPeople );
return null;
}
}
我已在 Intent 部分日志中放入第二个 Activity 来检查 Log.e("err", getName + ""+ getEmail + ""+ getPhone + ""+ getComment + ""+ getDateTime + ""+ getnumberOfPeople );
并在 LogCat
中,当单击保存到数据库的按钮时,我看到此错误
11-08 17:04:44.654: E/err(1112): Test Test@myEmail.com 33733721 Hello 26/11/2014, 4:50 PM 3
这是第一个 Activity 的 xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<EditText
android:id="@+id/personName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:ems="10"
android:hint="@string/NameForReservation"
android:inputType="textPersonName"
android:maxLength="25" />
<EditText
android:id="@+id/personPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:ems="10"
android:hint="@string/ContactPhone"
android:inputType="phone"
android:maxLength="16" />
<EditText
android:id="@+id/personEmail"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:ems="10"
android:hint="@string/CustomerEmailContact"
android:inputType="textEmailAddress"
android:maxLength="50" />
<EditText
android:id="@+id/personComment"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:ems="10"
android:hint="@string/CustomerCommentar"
android:maxLength="100" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/linearLayout1" >
<Button
android:layout_height="wrap_content"
android:layout_weight="0"
android:id="@+id/btnCalendar"
android:text="@string/ReservationDate"
android:layout_width="100dp" />
<requestFocus></requestFocus>
<EditText
android:id="@+id/datePicker"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.27"
android:inputType="datetime" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/numberOfPeople"
android:layout_width="190dp"
android:layout_height="36dp"
android:layout_weight="0.04"
android:layout_marginLeft="10dp"
android:text="@string/numberOfPeople" />
<requestFocus></requestFocus>
<EditText
android:id="@+id/editText5"
android:layout_width="10dp"
android:layout_height="41dp"
android:layout_weight="0.02"
android:ems="10"
android:inputType="number"
android:maxLength="2"
android:text="" />
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<Button
android:id="@+id/continueWithReservation"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="right"
android:gravity="center"
android:text="@string/reservationContinue" />
</LinearLayout>
</LinearLayout>
知道我在这里想念什么吗?
从服务器端更新php
文件
<?php
$icon = mysql_connect("localhost","user","pass");
if(!$icon)
{
die('Could not connect : ' . mysql_erroe());
}
mysql_select_db("db", $icon)or die("database selection error");
echo json_encode($data);
$Name=$_POST['Name'];
$Phone=$_POST['Phone'];
$Email=$_POST['Email'];
$Comment=$_POST['Comment'];
$DateTime=$_POST['DateTime'];
$numberOfPeople=$_POST['numberOfPeople'];
date_default_timezone_set("Europe/Bucharest"); // time zone
$DateTime= date("Y-m-d H:i:s");
mysql_query("INSERT INTO reservation (Name, Phone, Email, Comment, DateTime, numberOfPeople)
VALUES ('$Name', '$Phone', '$Email', '$Comment', '$DateTime', '$numberOfPeople')",$icon);
mysql_close($icon);
最佳答案
您错过了单引号 '$DateTime'
mysql_query("INSERT INTO reservation (Name, Phone, Email, Comment, DateTime, numberOfPeople) VALUES ('$Name', '$Phone', '$Email', '$Comment', '$DateTime', '$numberOfPeople')");
mysql_query 已弃用,不要在新项目中使用它。尝试 mysqli_ 或 PDO
并在你的 php 中将其放在查询上方
date_default_timezone_set("Asia/Calcutta"); // choose your time zone
$DateTime= date("Y-m-d H:i:s");
关于android - Activity 不将信息保存到 MySQL 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26822609/