我有一个名为 user_job_apply的数据库(id,job_id,postby_id,applier_id,flag,flag_wall,time_apply)。
我的数据库中的“time_apply”类型设置为:datetime
我的问题是,以下代码片段在我的数据库中插入了所有内容,但它没有插入 $ timeString 的值。当我查看我的数据库时,它显示0000-00-0000B 00:00。知道这里有什么问题吗?
我已经通过回显$ timeString进行测试,它显示日期和时间成功,但我无法将其传递到我的数据库中。知道如何解决这个问题吗?
<?php
// the next two values comes from a form
$the_job_code = mysql_real_escape_string($_POST['jobid']);
$the_postedby = mysql_real_escape_string($_POST['postedby']);
// use it to get current time from user's computer
$timeString= '
<script language="javascript">
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd="0"+dd
}
if(mm<10) {
mm="0"+mm
}
today = mm+"/"+dd+"/"+yyyy + " " +today.getHours() + ":" + today.getMinutes()+":" + today.getSeconds();
document.write(today);
</script> ';
mysql_query("INSERT INTO `user_job_apply` VALUES ('', '$the_job_code', '$the_postedby ', '$session_user_id', '1', '1', '$timeString') ");
?>
答案 0 :(得分:0)
也许您需要使用MySQL日期格式,例如&#39; YYYY-MM-DD&#39;?
答案 1 :(得分:0)
可能是因为你的Mysql本地化设置和dateformat,试试stepozer所说的&#39; YYYY-MM-DD&#39;
today = yyyy+"/" +mm+"/"+dd+ " " +today.getHours() + ":" + today.getMinutes()+":" + today.getSeconds();
或者您可以使用函数NOW()
直接在sql上插入当前日期和时间mysql_query("INSERT INTO `user_job_apply` VALUES ('', '$the_job_code', '$the_postedby ', '$session_user_id', '1', '1', NOW()) ");
答案 2 :(得分:0)
&#34;今天&#34;在Javascript块底部定义的变量没有以与MySQL兼容的格式定义。
应该这样定义:
today = yyyy+"-"+mm+"/"+dd+" "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
像这样,它将以MySQL所需的格式输出,以保存在&#34; datetime&#34;字段。
修改强>
上述解决方案仅解决了部分问题。
这里的主要问题是在提交表单后,此代码在服务器端运行。
你应该将javascript块移动到表单所在的html文件中(在表单之后)并写下&#34;今天&#34;变量为隐藏的表单输入,称为&#34; timeString&#34;。
提交后,您应通过帖子收到此变量:
$timeString = mysql_real_escape_string($_POST['timeString']);
编辑2:
首先,您需要在表单中创建隐藏的表单输入:
<input type="hidden" name="timeString" id="timeStringInput">
您需要在表单()结束后立即将以下块复制到您的html文件中:
<script language="javascript">
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();
if(dd<10) {
dd="0"+dd
}
if(mm<10) {
mm="0"+mm
}
today = yyyy+"/"+mm+"/"+dd+" "+today.getHours()+":"+today.getMinutes()+":"+ today.getSeconds();
document.getElementById('timeStringInput').value = today;
</script>
在PHP文件中,将$ timeString赋值(完整块)替换为:
$timeString = mysql_real_escape_string($_POST['timeString']);