【问题标题】:PHP MS SQL Placeholders for Date日期的 PHP MS SQL 占位符
【发布时间】:2013-02-14 12:05:40
【问题描述】:

如何将日期传递给 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);

除非我对日期值进行硬编码,否则我无法从数据库中获取任何内容。

有人可以帮忙吗?

谢谢。

【问题讨论】:

标签: php sql-server codeigniter


【解决方案1】:

试试这个...

$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);

【讨论】:

  • 希望可以,但我必须使用占位符。
【解决方案2】:

想一想,试试换吧:

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

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

【讨论】:

    【解决方案3】:

    全部在 '' 或 "" 我宁愿使用 "";

    $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);
    

    注意变量周围的逗号。

    【讨论】:

      猜你喜欢
      • 2017-12-15
      • 2020-06-19
      • 2018-10-14
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-06
      相关资源
      最近更新 更多