【发布时间】:2020-05-30 11:56:28
【问题描述】:
我正在尝试从 MS SQL Server 获取按当前时间过滤的列数据。单元格具有datetime 格式。但我得到空洞的回应。哪里出错了?
<?php
$serverName = ''; // server name
$cinfo = array(
"Database" => "", // database
"UID" => "", // user
"PWD" => "" // pass
);
$conn = sqlsrv_connect($serverName, $cinfo);
if ($conn) {
echo "connected" . "<br/>";
$datetimenow = current_time("d.m.Y H:i"); // wordpress function
echo $datetimenow . "<br/>"; // 30.05.2020 14:10
if (($result = sqlsrv_query($conn, "SELECT * FROM dbo.GorElectroTrans WHERE GPS_datetime=$datetimenow")) !== false) {
while ($obj = sqlsrv_fetch_object($result)) {
echo $obj->Longitude . '<br />';
}
}
} else {
die(print_r(sqlsrv_errors(), true));
}
?>
【问题讨论】:
-
您是否需要在
=$datetimenow"中的插入值周围加上某种形式的引号,最好还是使用准备好的语句。 -
@NigelRen 对不起,我是 PHP 新手,如何正确?
-
尝试使用参数化查询,也就是Prepared Statements。您不仅可以避免处理引用数据,还可以帮助您避免Little Bobby Tables 的问题。
-
@AlwaysLearning 有 MySQL 示例,它可以与 MS SQL 一起使用吗?
-
你试过了吗,管理工作室,
SELECT * FROM dbo.GorElectroTrans WHERE GPS_datetime= <'datetimeNow'>。这里,<'datetimeNow'>是您从 php 传递的值。
标签: php sql sql-server sqlsrv