如何从 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中检索数据