PHP SQL Server:尝试通过列日期和时间查找数据库中的最近条目
SQL和PHP新手,所以请仁慈一点,我看到这个解释很可怕,所以提前表示歉意 运行此查询时返回false。我要做的是通过存储在与ID对应的DateAndTime列中的时间戳从数据库中提取最近的条目 我的想法是,我按日期和时间对行进行排序,然后选择与ID对应的第一行PHP SQL Server:尝试通过列日期和时间查找数据库中的最近条目,php,sql-server,Php,Sql Server,SQL和PHP新手,所以请仁慈一点,我看到这个解释很可怕,所以提前表示歉意 运行此查询时返回false。我要做的是通过存储在与ID对应的DateAndTime列中的时间戳从数据库中提取最近的条目 我的想法是,我按日期和时间对行进行排序,然后选择与ID对应的第一行 $mostRecent_Query = "SELECT TOP 1 * FROM locationFTable ORDER BY DateAndTime DESC Where ID like $conID"; $resultTim
$mostRecent_Query = "SELECT TOP 1 *
FROM locationFTable
ORDER BY DateAndTime DESC Where ID like $conID";
$resultTime = sqlsrv_query($conn, $mostRecent_Query);
SQL查询错误,
WHERE…
子句必须出现在orderby…
子句之前。例如:
SELECT TOP 1 *
FROM locationFTable
WHERE ID like $conID
ORDER BY DateAndTime DESC
注意:在将查询放入代码之前,应先测试查询。SQLServerManagementStudio非常适合此任务
奖金说明:ID
列很可能是int
,因此我猜LIKE
是错误的运算符,也许您打算使用=
额外注意事项:去阅读有关SQL注入的内容,因为您的代码很可能容易受到这种安全风险的攻击。您的SQL查询错误,
WHERE…
子句必须出现在ORDER BY…
子句之前。例如:
SELECT TOP 1 *
FROM locationFTable
WHERE ID like $conID
ORDER BY DateAndTime DESC
注意:在将查询放入代码之前,应先测试查询。SQLServerManagementStudio非常适合此任务
奖金说明:ID
列很可能是int
,因此我猜LIKE
是错误的运算符,也许您打算使用=
额外注意事项:阅读有关SQL注入的内容,因为您的代码很可能容易受到该安全风险的攻击。由于您使用的是过程接口,因此需要手动验证所有相关函数调用的返回值,在这种情况下: 成功时返回语句资源,发生错误时返回
FALSE
如果出现错误,则需要调用以读取它们
最后但并非最不重要的一点是,您以错误的方式注入数据
文档中有一个粗略但全面的示例:
$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");
$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
由于您使用的是过程接口,因此需要手动验证所有相关函数调用的返回值,在这种情况下: 成功时返回语句资源,发生错误时返回
FALSE
如果出现错误,则需要调用以读取它们
最后但并非最不重要的一点是,您以错误的方式注入数据
文档中有一个粗略但全面的示例:
$sql = "INSERT INTO Table_1 (id, data) VALUES (?, ?)";
$params = array(1, "some data");
$stmt = sqlsrv_query( $conn, $sql, $params);
if( $stmt === false ) {
die( print_r( sqlsrv_errors(), true));
}
WHERE…
必须位于查询中的ORDER BY…
之前。$Select\u Username\u For\u Location=“Select TOP 1*FROM locationFTable DESC,其中ID类似于“$conID”ORDER BY DateAndTime”;尝试此操作后,没有结果,WHERE…
必须位于查询中的ORDER BY…
之前。$Select\u Username\u For\u Location=“Select TOP 1*FROM locationFTable DESC其中ID类似于“$conID”ORDER BY DateAndTime”;尝试此无结果,如果*@J.Dune,则单独使用字段名;如果*@J.Dune,则单独使用字段名