第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法從具有日期時間格式的 col 獲取數(shù)據(jù)

無法從具有日期時間格式的 col 獲取數(shù)據(jù)

PHP
慕哥6287543 2023-04-21 17:16:20
我正在嘗試從 MS SQL Server 獲取按當前時間過濾的列數(shù)據(jù)。單元格有datetime格式。但我得到空洞的回應(yīng)。哪里出錯了?<?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));}?>
查看完整描述

1 回答

?
ITMISS

TA貢獻1871條經(jīng)驗 獲得超8個贊

您需要更改語句并使用參數(shù)化查詢來防止可能的 SQL 注入問題。如文檔中所述,sqlsrv_query 函數(shù)非常適合一次性查詢,除非有特殊情況,否則應(yīng)該是執(zhí)行查詢的默認選擇。此函數(shù)提供了一種簡化的方法,可以用最少的代碼執(zhí)行查詢。sqlsrv_query 函數(shù)同時進行語句準備和語句執(zhí)行,可用于執(zhí)行參數(shù)化查詢

當您將參數(shù)用于datetime值時,您有兩個選擇:

  • 將值作為文本傳遞,使用變量值的datetime明確格式(在您的情況下,函數(shù)將當前時間作為來自格式化的 PHP datetime 對象的文本返回)。datetime$datetimenowcurrent_time

  • datetime使用擴展參數(shù)語法將值作為 PHP 日期時間對象傳遞。

PHP:

<?php

$serverName = '';? ? ?// server name

$cinfo = array(

? ? "Database" => "", // database

? ? "UID" => "",? ? ? // user

? ? "PWD" => ""? ? ? ?// pass

);

$conn = sqlsrv_connect($serverName, $cinfo);


if ($conn) {

? ? echo "connected" . "<br/>";


? ? // Datetime value in `yyyy-mm-ddThh:mi:ss` format

? ? $datetimenow = current_time("Y-m-d\TH:i:00");

? ? // or if you want a specific datetime value

? ? //$datetimenow = '2020-05-30T14:10:00';


? ? // Pass datetime value as text

? ? $sql = "SELECT * FROM dbo.GorElectroTrans WHERE GPS_datetime = ?";

? ? $params = array($datetimenow);

? ? if (($result = sqlsrv_query($conn, $sql, $params)) !== false) {

? ? ? ? while ($obj = sqlsrv_fetch_object($result)) {

? ? ? ? ? ? echo $obj->Longitude . '<br />';

? ? ? ? }

? ? }


? ? // Pass datetime value as PHP datetime object

? ? $sql = "SELECT * FROM dbo.GorElectroTrans WHERE GPS_datetime = ?";

? ? $params = array(

? ? ? ? array(

? ? ? ? ? ?date_create_from_format('Y-m-d\TH:i:s', $datetimenow),

? ? ? ? ? ?SQLSRV_PARAM_IN,?

? ? ? ? ? ?SQLSRV_PHPTYPE_DATETIME,?

? ? ? ? ? ?SQLSRV_SQLTYPE_DATETIME

? ? ? ? )

? ? );

? ? if (($result = sqlsrv_query($conn, $sql, $params)) !== false) {

? ? ? ? while ($obj = sqlsrv_fetch_object($result)) {

? ? ? ? ? ? echo $obj->Longitude . '<br />';

? ? ? ? }

? ? }


} else {

? ? die(print_r(sqlsrv_errors(), true));

}

?>

補充筆記:

  • 當您從 SQL Server 檢索數(shù)據(jù)時,datetime值默認作為 PHP對象返回,因此您需要在連接字符串或語句級別使用或設(shè)置選項。datetimeDateTime->format()'ReturnDatesAsStrings'

  • 當您將綁定值發(fā)送到小數(shù)或數(shù)字列(也在文檔中提到)時,建議使用字符串作為輸入以確保精度和準確性,因為 PHP 對浮點數(shù)的精度有限。這同樣適用于 bigint 列,尤其是當值超出整數(shù)范圍時。


查看完整回答
反對 回復 2023-04-21
  • 1 回答
  • 0 關(guān)注
  • 122 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號