我正试图让PDO与MySQL'之间'合作.以下是我的代码:
$DBH = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);
$start_date = date('Y-m-d H:i:s', mktime(0, 0, 0, 11, 1, 2009));
$end_date = date('Y-m-d H:i:s', mktime(23, 59, 59, 11, 30, 2009));
$STH = $DBH->prepare("SELECT * FROM `table` WHERE `start_date` BETWEEN ':start_date' AND ':end_date'");
$STH->bindParam(':start_date', $start_date, PDO::PARAM_STR);
$STH->bindParam(':end_date', $end_date, PDO::PARAM_STR);
$STH->execute();
var_dump($row);
Run Code Online (Sandbox Code Playgroud)
返回的是一个值为'0'或'NULL'的数组.当我对结束日期进行硬编码时,它就像start_date设置为-1一样,在我之前重新调整所有行end_date.那么,我在这里做错了什么?
Joh*_*Woo 11
不要用单引号包装值.
$STH = $DBH->prepare("SELECT * FROM `table` WHERE `start_date` BETWEEN :start_date AND :end_date");
Run Code Online (Sandbox Code Playgroud)
不要在params周围加上引号:
$STH = $DBH->prepare("SELECT * FROM `table` WHERE `start_date` BETWEEN :start_date AND :end_date");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8817 次 |
| 最近记录: |