PHP SQL Server 2008 未返回预期结果
Posted
技术标签:
【中文标题】PHP SQL Server 2008 未返回预期结果【英文标题】:PHP SQL server 2008 not returning expected results 【发布时间】:2012-04-02 15:43:44 【问题描述】:您好,我目前正在开发一个 php 脚本,它只会返回一个字段的值。下面的代码是我一直在使用的
$code = $_POST['code'];
$serverName = "EDIT";
$connectionInfo = array("UID" => "EDIT", "PWD" => "EDIT", "Database"=>"EDIT");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
$tsql2 = "SELECT paitentno FROM paraappreg WHERE appno = $code";
$result2 = sqlsrv_query( $conn, $tsql2, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET ));
print sqlsrv_fetch($result2);
此代码正在生成一个输出,但它始终为“1”。我猜测这与我如何使用 sqlsrv_fetch 返回值有关,但是如果这是问题,我不确定应该使用什么。
感谢您提供的任何帮助:)
【问题讨论】:
【参考方案1】:sqlsrv_fetch "使结果集中的下一行可供读取。"您得到的响应是“真”,表示操作已成功。您想要做的是使用此命令的变体之一来获取数据(代码未经测试但应该可以工作):
print ($result2); // response: 1 ("true")
print_r(sqlsrv_fetch_array($result2)); // response: Array("paitentno"=>'1234');
print_r(sqlsrv_fetch_object($result2)); // response: StdObj->paitentno->1234;
// this gets the item by index:
print_r(sqlsrv_get_field($result2, 0)); // response: 1234;
阅读更多关于sqlsrv_fetch at php.net.
【讨论】:
这个答案基本上是正确的,有一个更正:sqlsrv_get_field 函数旨在与 sqlsrv_fetch 结合使用。即调用 sqlsrv_fetch 使一行准备好读取,然后调用 sqlsrv_get_field 以获取行中的字段(一次一个)。 sqlsrv_fetch_array 和 sqlsrv_fech_object 将获取整行,不能在 sqlsrv_fetch 之后调用。以上是关于PHP SQL Server 2008 未返回预期结果的主要内容,如果未能解决你的问题,请参考以下文章
win12安装 sqlserver2008 r2未授权的操作
SQL Server 2008 Management Studio 的缺失索引功能
用户“sa”登录失败。用户未与受信任的 SQL Server 连接关联。 (Microsoft SQL Server,错误:18452)在 sql 2008 中