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

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

數(shù)據(jù)庫中沒有數(shù)據(jù)

數(shù)據(jù)庫中沒有數(shù)據(jù)

PHP
幕布斯6054654 2023-07-30 13:18:42
我編寫了一個 php 應(yīng)用程序,它應(yīng)該根據(jù)給定的日期從數(shù)據(jù)庫中選擇數(shù)據(jù)。數(shù)據(jù)庫中的日期存儲方式如下2020-07-03。執(zhí)行該語句的代碼如下所示$from = $_POST['from'];$to = $_POST['to'];$sql = "SELECT * FROM Database WHERE Date < $from";$stmt = sqlsrv_query($conn, $sql);if($stmt == false){    die( print_r( sqlsrv_errors(), true) );}echo $sql;while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {    echo $row[0].", ".$row[1]."<br />";}$from是$to用戶通過日期輸入字段給出的范圍,并返回用戶輸入,例如2020-07-02. “日期”字段的數(shù)據(jù)類型是日期。我沒有收到任何錯誤或類似的錯誤,但它不會執(zhí)行 while 循環(huán),我不明白為什么。php
查看完整描述

1 回答

?
慕村9548890

TA貢獻(xiàn)1884條經(jīng)驗 獲得超4個贊

您需要在語句中使用參數(shù)。正如文檔中提到的,sqlsrv_query()?函數(shù)非常適合一次性查詢,并且應(yīng)該是執(zhí)行查詢的默認(rèn)選擇,除非有特殊情況。此函數(shù)提供了一種簡化的方法,可以使用最少的代碼執(zhí)行查詢。sqlsrv_query 函數(shù)同時執(zhí)行語句準(zhǔn)備和語句執(zhí)行,并且可用于執(zhí)行參數(shù)化查詢。

您需要通過以下方式之一傳遞參數(shù)值:

  • 作為使用明確日期格式 (?yyyymmdd) 的文本,

  • 使用擴(kuò)展參數(shù)語法和適當(dāng)?shù)臄?shù)據(jù)類型綁定。

例如,根據(jù)問題中的代碼,使用日期的文本值:

<?php

// Connection

$server? ? = 'server,port';

$database? = 'database';

$uid? ? ? ?= 'uid';

$pwd? ? ? ?= 'pwd';

$cinfo = array(

? ?"ReturnDatesAsStrings" => true,

? ?"Database" => $database,

? ?"UID" => $uid,

? ?"PWD" => $pwd

);

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

if ($conn === false) {

? ?echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);

? ?exit;

}


// Test input

$from = (new DateTime('2020-07-02'))->format('Ymd');

$to? ?= (new DateTime('2020-07-03'))->format('Ymd');


// Statement

$sql = "

? ? SELECT *?

? ? FROM Database?

? ? WHERE (? <= [Date]) AND ([Date] <= ?)"

;

$params = array($from, $to);

$stmt = sqlsrv_query($conn, $sql, $params);

if($stmt == false){

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

}

echo $sql;


// Data

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {

? ? echo $row[0].", ".$row[1]."<br />";

}


// End

sqlsrv_free_stmt($stmt);


?>

例如,根據(jù)問題中的代碼,使用 PHP 日期對象和適當(dāng)?shù)膮?shù)綁定:


<?php

// Connection

$server? ? = 'server,port';

$database? = 'database';

$uid? ? ? ?= 'uid';

$pwd? ? ? ?= 'pwd';

$cinfo = array(

? ?"ReturnDatesAsStrings" => true,

? ?"Database" => $database,

? ?"UID" => $uid,

? ?"PWD" => $pwd

);

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

if ($conn === false) {

? ?echo "Error (sqlsrv_connect): ".print_r(sqlsrv_errors(), true);

? ?exit;

}


// Test input

$from = new DateTime('2020-07-02');

$to? ?= new DateTime('2020-07-03');


// Statement

$sql = "

? ? SELECT *?

? ? FROM Database?

? ? WHERE (CONVERT(date, ?) <= [Date]) AND ([Date] <= CONVERT(date, ?))"

;

$params = array(

? ?array($from, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_DATETIME, SQLSRV_SQLTYPE_DATETIME),

? ?array($to, SQLSRV_PARAM_IN, SQLSRV_PHPTYPE_DATETIME, SQLSRV_SQLTYPE_DATETIME)

);

$stmt = sqlsrv_query($conn, $sql, $params);

if($stmt == false){

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

}

echo $sql;


// Data

while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {

? ? echo $row[0].", ".$row[1]."<br />";

}


// End

sqlsrv_free_stmt($stmt);


?>


查看完整回答
反對 回復(fù) 2023-07-30
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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