android - Activity 不将信息保存到 MySQL 数据库中

标签 android mysql android-intent

我有一张预订表格,必须将信息保存到 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/

相关文章:

php - 我的login.php 说我的密码不正确,而实际上它是正确的。

mysql - mysql中如何计算字符串的值

Android Drive api 下载文件

android - 交替编辑文本提示对阿拉伯语不可见

java - 异步任务 : Can't update UI from publishProgress. 错误 : Only the original thread that created a view hierarchy can touch its views.

mysql删除触发器

android - 以编程方式重新启动 Android 应用程序

java - onActivityResult 改变我当前的 fragment

java - 如何为辅助 Android Activity 的打开设置动画?就像 Playstore 新闻一样

java - 自定义线性布局