2013-02-14 65 views
0

如何将日期传递到PHP和MS SQL的占位符?日期的PHP MS SQL占位符

我使用的示例代码:

$fromDate = '2013-01-01'; 
$toDate = '2013-02-28'; 
$empno = 12345; 

$sqlStr = "SELECT * FROM histTable WHERE EmpNum = ? 
      AND toDate >= ? AND fromDate <= ?"; 

$sqlResult = $this->db->query($sqlStr, $empno, $fromDate, $toDate); 

我无法从数据库,除非我硬编码的日期值得到任何东西。

任何人都可以请帮忙吗?

谢谢。

+0

即时猜测你的MySQL有列作为数据类型或时间戳和你传递一个字符串 – 2013-02-14 12:07:45

+0

http://stackoverflow.com/questions/10435109/sql-query-escaping-codeigniter – tomexsans 2013-02-14 12:12:19

回答

0

尝试......

$fromDate = '2013-01-01 00:00:00'; 
$toDate = '2013-02-28 00:00:00'; 
$empno = 12345; 

$sqlStr = "SELECT * FROM histTable WHERE EmpNum = $empno 
      AND toDate >= '$fromDate' AND fromDate <= '$toDate'"; 

$sqlResult = $this->db->query($sqlStr); 
+0

希望我可以但我必须使用占位符。 – Jamie 2013-02-14 12:56:20

0

直把我的头顶部,尝试改变:

$sqlStr = "SELECT * FROM histTable WHERE EmpNum = ? AND toDate >= ? AND fromDate <= ?"; 

$sqlStr = "SELECT * FROM histTable WHERE EmpNum = ? AND toDate >= '?' AND fromDate <= '?'"; 
0

所有在 '' 或“ “我宁愿用”“;

$fromDate = '2013-01-01'; 
$toDate = '2013-02-28'; 
$empno = 12345; 

$sqlStr = "SELECT * FROM histTable WHERE EmpNum = ? 
     AND toDate >= '{$fromDate}' AND fromDate <= '{$toDate}' "; 

$sqlResult = $this->db->query($sqlStr, $empno, $fromDate, $toDate); 

介意围绕变量的逗号。