簡體   English   中英

使用PDO(dblib)在PHP中進行SELECT到SQL視圖

[英]SELECT in Php with PDO (dblib) to SQL view

我正在嘗試執行一個SQL查詢,它不起作用。

$sql = "SELECT top 5 AccountDocument from web.Preoffers_new where AccountDocument = 'xxxxxxxx'";
$stmt = $db->prepare($sql);
$stmt->execute();

if ($data = $stmt->fetch()) {
    do {
        echo $data['AccountDocument'] . '<br>';
    } while ($data = $stmt->fetch());
} else {
    echo 'Empty Query';
}

這完美地工作,並向我展示了結果。

但是這個:

$sql = "SELECT top 5 Document from Companies where Document = 'xxxxxxxx'";
$stmt = $db->prepare($sql);
$stmt->execute();

if ($data = $stmt->fetch()) {
    do {
        echo $data['Document'] . '<br>';
    } while ($data = $stmt->fetch());
} else {
    echo 'Empty Query';
}

直接轉到“空查詢”。 但事實並非如此,因為如果我在SQL中執行該查詢,它將運行完美。

我看到的唯一不同是第一個查詢轉到數據庫中的表,第二個查詢轉到一個視圖...

這可能是一些線索嗎?

    SET 
  ANSI_NULLS, 
  QUOTED_IDENTIFIER, 
  CONCAT_NULL_YIELDS_NULL, 
  ANSI_WARNINGS, 
  ANSI_PADDING 
ON;

更新---->

我設置屬性PDO :: ATTR_ERRMODE,PDO :: ERRMODE_EXCEPTION以查看服務器是否向我顯示了一些內容,並且我收到了以下內容:

錯誤的基本連接信息:SQLSTATE [HY000]:常規錯誤:1934常規SQL Server錯誤:檢查來自SQL Server的消息[1934](嚴重性16)[從文檔='xxxxxxxx'的公司中選擇前5個文檔]

我檢查了SQL中的錯誤,我得到了:

%ls失敗,因為以下SET選項設置不正確:'%。* ls'。 驗證SET選項正確用於%S_MSG。

有人知道為什么我不能在視圖中查詢嗎?

謝謝你讀我:)

正如我在代碼中看到的那樣,您使用“文檔”而不是“ AccountDocument”,因此將AccountDocument替換為Document。

$sql = "SELECT top 5 Document from Companies where Document = 'xxxxxxxx'";
$stmt = $db->prepare($sql);
$stmt->execute();

if ($data = $stmt->fetch()) {
    do {
        echo $data['Document'] . '<br>';
    } while ($data = $stmt->fetch());
} else {
    echo 'Empty Query';
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM