【发布时间】:2016-09-18 19:23:01
【问题描述】:
我使用 php 和 mysqli 打开到我的数据库的连接,并使用准备好的语句进行一些查询,其中一切正常,但在这个查询中,我试图只选择未来的游乐设施,一旦我莫名其妙地失败了将比较添加到 GETDATE()
date_default_timezone_set('America/Denver');
if(!($stmt = $con->prepare("SELECT r.destination, r.startDepartureTime, r.seats, r.priceperseat FROM ride r WHERE r.startZipCode = ? AND r.startDepartureTime > GETDATE()"))) echo "Prepare failed: (" . $stmt->errno . ") " . $stmt->error;
if(!$stmt->bind_param("i", $userZipCode)) echo "Binding parameters failed: (" . $stmt->errno . ") " . $stmt->error;
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($destination,$departure,$seats,$price);
while($stmt->fetch()){
echo "Destination : $destination Departure Time : $departure Seats Available : $seats Price Per Seat : $price <br>";
}
$stmt->close();
php 错误日志报告在准备语句行
PHP注意:试图获取非对象的属性
因此在 bind_param 行我们得到 p>
PHP 致命错误:在非对象上调用成员函数 bind_param()
我最初尝试使用 NOW(),但尝试了此线程 SQL NOW() function not working properly 中的所有解决方案并且没有运气。
当我在没有 r.startDepartureTime > GETDATE() 比较的情况下运行语句时,一切正常。
并且我已确保我的数据库中的 startDepartureTime 列是日期时间类型。这是一个示例条目:2016-05-21 10:24:00,我确定确实大于当前时间并且在相同的邮政编码中,以确保我不只是收到一个空集。
【问题讨论】:
-
当
->prepare()失败但您没有发现错误并继续执行您的代码时,您会收到这些错误
标签: php datetime mysqli prepare date-comparison