【问题标题】:PHP SQL server 2008 not returning expected resultsPHP SQL Server 2008 未返回预期结果
【发布时间】: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 返回值有关,但是如果这是问题,我不确定应该使用什么。

感谢您提供的任何帮助:)

【问题讨论】:

    标签: php sql sql-server


    【解决方案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 之后调用。
    猜你喜欢
    • 1970-01-01
    • 2018-12-22
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多