我正在尝试将发送到函数中的字符串转换为日期,以便可以将其与数据库中的日期字段进行比较,但是它不起作用,我也不知道为什么。
我已经尝试过了:
<a href="<?php echo site_url('job/DOEIntakeForm/' . $hearingdate); ?>">Download Intake Forms</a>
和
public function DOEIntakeForm($hearingDate) {
$newDate = date_format(date_create($hearingDate), 'Y-m-d');
$query = 'SELECT id, orderdata, reportername, hearing FROM job WHERE jobtypeid = 307 AND hearingtype = 9 AND hearing = ' . $newDate;
$result = $this->db->query($query)->result();
echo '<pre>'; print_r($result); exit;
}
然后我尝试以已格式化的格式发送日期,例如:
<a href="<?php echo site_url('job/DOEIntakeForm/' . date('Y-m-d',strtotime($hearingdate))); ?>">Download Intake Forms</a>
但是我一直在为$ result获取一个空数组。我看不到我在做什么错。我在网上查找了许多示例,他们都以这种方式进行操作,所以为什么它不起作用?
如果我将日期硬编码到查询中,则一切正常。
TIA。
编辑: 当我var_dump $ hearingDate时,我得到C:\ ### \ application \ controllers \ Job.php:2462:string'2019-03-01'(length = 10)
答案 0 :(得分:0)
首先,您应该使用准备好的语句,这样可以避免SQL注入和此类问题。您需要为日期加上单引号,所以它看起来像这样AND hearingtype = 9 AND hearing ='2019-03-01'
:
public function DOEIntakeForm($hearingDate) {
$newDate = date_format(date_create($hearingDate), 'Y-m-d');
$query = "SELECT id, orderdata, reportername, hearing FROM job WHERE jobtypeid = 307 AND hearingtype = 9 AND hearing = '" . $newDate."'";
$result = $this->db->query($query)->result();
echo '<pre>'; print_r($result); exit;
}
看到我用“”更改了您的“。