在mysql数据库中发送错误的日期值

时间:2013-04-26 13:21:05

标签: android

我正在尝试将所有值从edittext发送到database,但所有数据都完整地添加到databasedate字段中显示0000-00-00我的代码是:

public class ProposeMeeting1Activity extends Activity
 {   

    TextView txtview,textview,eorg;
    Button bthm,btnsnd;
    String pdate,ptime,pvenue,uid,cdate;         
    HttpPost post;
    HttpResponse res;
    HttpClient client;
    InputStream in;
    StringBuffer sb;
    Date date1;
    String str;
    int ch;
        protected void onCreate(Bundle savedInstanceState) 
         {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_propose_meeting1);
        Intent intent = getIntent();
        pdate = intent.getStringExtra("sdate");
        ptime = intent.getStringExtra("stime");
        pvenue = intent.getStringExtra("svenue");
        uid=intent.getStringExtra("uid");
        bthm= (Button)findViewById(R.id.button2);
        eorg = (TextView)findViewById(R.id.textView8);
        eorg.setText(uid);
        btnsnd= (Button)findViewById(R.id.button1);
        btnsnd.setOnClickListener(new View.OnClickListener() 
        {
            @Override
               public void onClick(View v) 
            {
                try {

                    List<NameValuePair>parameters= new ArrayList<NameValuePair>(2);
                    parameters.add(new BasicNameValuePair("organiser",eorg.getText().toString()));
                    parameters.add(new BasicNameValuePair("attendees",einvite.getText().toString()));
                    parameters.add(new BasicNameValuePair("title",etitle.getText().toString()));                
                    parameters.add(new BasicNameValuePair("mdate",edate.getText().toString()));
                    parameters.add(new BasicNameValuePair("mtime",etime.getText().toString()));
                    parameters.add(new BasicNameValuePair("venue",evenue.getText().toString()));
                    post=new HttpPost("http://10.0.2.2/meetingschedular/sendinvite.php");
                    post.setEntity(new UrlEncodedFormEntity(parameters));
                    client= new DefaultHttpClient();
                    res=client.execute(post);
                    HttpEntity en=res.getEntity();
                    in=en.getContent();
                    sb=new StringBuffer();
                    while((ch=in.read())!=-1){
                    sb.append((char)ch);
                    }
                    str=sb.toString();
                    Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show();
                    einvite.setText("");

                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });

    }

我的php代码如下:

`<?php 

       $con=mysql_connect('localhost','root','');
       mysql_select_db('meetingschedulardata',$con);
       if(!$con)
        {
                  die("can not connect".mysql_error());
         }

       $order="INSERT INTO meetingdetails (organiser,attendees,title,mdate,mtime,venue)     values('$_POST[organiser]','$_POST[attendees]','$_POST[title]','$_POST[mdate]','$_POST[mtime]','$_POST[venue]')";

      $result=mysql_query($order,$con);
      if($result==1)
      {
         echo "Want To Invite More Then Continue";
      }
      else
      {
         echo "Problem occurs while Invitingm".mysql_error();
      }

?>`

1 个答案:

答案 0 :(得分:0)

我可以看到的一个问题是您使用EditText来设置日期/时间。虽然这可能不是你问题的根源,但它仍然是一个坏主意。 EditText过于灵活,您(作为开发人员)很难知道在EditText中输入日期/时间的格式或方式。 date/time picker 更合适。

其次,您如何在数据库中存储日期/时间?您是将其存储为字符串还是Unix time?我个人会建议使用后者,因为它易于存储/检索,您可以以任何方式格式化时间,而无需更改数据库上的任何内容。

但是,除此之外,请确保您发送的日期/时间转换为日期/时间列可以接受的内容。如果将列定义为日期时间,请确保将数据转换为可接受的格式。