今天是个好日子!
我目前正在研究如何使用android的日期选择器将日期值放入我的php mysql中。我的计划是从datepicker获取数据,无论它的值是多少,它将放入mysql中。出于某种原因,没有错误,但是每次我将其输入数据库时,它仅将值“ 0000-00-00”输入到mysql中。以下是我的java android代码。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_datetime);
//setup strict mode policy
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
timePicker = (TimePicker) findViewById(R.id.timePicker);
timePicker.setIs24HourView(true);
datePicker = (DatePicker) findViewById(R.id.datePicker);
//lblTime = (TextView) findViewById(R.id.lblTime);
btnAddTime = (Button) findViewById(R.id.btnAddTime);
btnAddTime.setOnClickListener(new View.OnClickListener() {
InputStream is = null;
@Override
public void onClick(View v) {
//String time = lblTime.getText().toString();
//String time = timePicker.getCurrentHour() + ":" + timePicker.getCurrentMinute() + ":" + "00";
String date = datePicker.getYear() + "-" + datePicker.getMonth() + 1 + "-" + datePicker.getDayOfMonth();
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair ("date", date));
try {
//setting up the default http client
HttpClient httpClient = new DefaultHttpClient();
//setting up the http post method and passing the url in case
//of online database and the ip address in case of localhost database
//and the php file which serves as a link between the android app
//and the database.
HttpPost httpPost = new HttpPost("http://10.0.2.2/add_time.php");
//passing the nameValuePairs inside the httppost
httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//getting the response
HttpResponse response = httpClient.execute(httpPost);
//setting up the entity
HttpEntity httpEntity = response.getEntity();
//setting up the content inside an input stream reader
//lets define the input stream reader
is = httpEntity.getContent();
//Toast message if the data is successfully entered
Toast.makeText(getApplicationContext(), "Date entered succesfully", Toast.LENGTH_LONG).show();
}
catch (ClientProtocolException e) {
Log.e("ClientProtocol", "Log_tag");
e.printStackTrace();
}
catch (IOException e) {
Log.e("Log tag", "IOException");
e.printStackTrace();
}
}
});
以下是我拥有的php代码:
<?php
error_reporting(E_ALL ^ E_DEPRECATED);
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('testdb', $con);
$date = $_POST['date'];
mysql_query("Insert into datetable (date) values('{$date}')");
?>
我将不胜感激有人可以帮助我,谢谢!
最佳答案
首先你不打电话
datePicker.init(year, month, day, dateSetListener);
其次,您尚未实现OnDateChangedListener
private DatePicker.OnDateChangedListener dateSetListener = new DatePicker.OnDateChangedListener() {
public void onDateChanged(DatePicker view, int year, int monthOfYear,
int dayOfMonth) {
// Use these values to pass....
}
};