如何从 SQL Server 中检索数据?

Posted

技术标签:

【中文标题】如何从 SQL Server 中检索数据?【英文标题】:How to retrieve data from SQL Server? 【发布时间】:2016-12-01 22:41:33 【问题描述】:

我想知道为什么当我知道那里有数据时我的查询返回 null。

我的查询如下:

if (isset($_POST['noteid'])) 
    
        $showNoteInfo = "SELECT Note FROM Notes WHERE NoteID = 2";
        $showNotes    = sqlsrv_query($conn, $showNoteInfo);

        var_dump($showNotes);
    

我已经测试了$_POST['noteid'] 并且显示 ID 没有问题,理论上这个 ID 将替换我查询中的数字 2。

但是我知道在NoteID = 2 的Notes 表中的文本应该是这样的

但是var_dump 显示“resource(7) of type (SQL Server Statement)

我还尝试了另一种显示它的方法,它作为查询预期资源返回并被赋予 NULL,那么为什么这个查询没有得到任何结果呢?

我的连接详细信息在页面顶部的包含中,如下所示:http://pastebin.com/qz3tScdW

如果您还需要什么,请询问。

基本问题,当我知道那里有数据时,为什么我的查询返回 NULL?

【问题讨论】:

sqlsrv_query 在成功查询时返回语句资源。然后你需要从它fetch the result 才能对它做任何事情。 查看我链接的文档中的示例。 resource(7) of type (SQL Server Statement) != NULL. 【参考方案1】:

您从未真正尝试检索您的数据。 sqlsrv_query 执行数据库查询,但没有获取数据。为此,您需要使用sqlsrv_fetch_array(或sqlsrv_fetch_object):

$stmt = sqlsrv_query($conn, $showNoteInfo);

if (sqlsrv_has_rows($stmt)) 
    $data = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC);
    var_dump($data['Note']);
 else 
    echo "No data found";

【讨论】:

我试过 它在转储中返回为 NULL @LukeLitherland 你试过sqlsrv_fetch_array吗? 是的,仍然返回“NULL”,这真的很奇怪 @LukeLitherland 在我的回答中尝试实际代码。您将看到您需要使用sqlsrv_fetch_array 调用的结果,而不是$showNotes。在我的代码中,即$data['Notes'];在你那里是$notes['Notes'] 天哪,非常感谢!最后一件小事起作用了,为什么它会在文本的开头显示字符串和字符数量,例如 string(256) 然后在 "" 中标记它有文本?

以上是关于如何从 SQL Server 中检索数据?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 C# 从 SQL Server 数据库中逐行将数据检索到 datagridview 中

如何使用 json 从 sql server ASP.net 中检索数据

如何使用json从sql server ASP.net中检索数据

如何使用 C# 从 ASP.NET 中的 SQL Server 数据库中检索和显示 GridView 中的值

如何从 SQL Server 中的存储过程中检索参数列表

如何从 SSIS 包中检索 SQL Server 实例名称