【问题标题】:sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given insqlsrv_fetch_array() 期望参数 1 是资源,布尔值在
【发布时间】:2014-05-22 13:36:39
【问题描述】:

我正在尝试从我的数据库(IIS、MSSQL PHP)打印记录,但我有这个错误...

警告:sqlsrv_fetch_array() 期望参数 1 是资源,在中给出的布尔值

<?php

$serverName ="name\SQLEXPRESS";
 $usr="sa";
 $pwd="pasw";
 $db="dbname";

$connectionInfo = array("UID" => $usr, "PWD" => $pwd, "Database" => $db);

$conn = sqlsrv_connect($serverName, $connectionInfo);



  $sql = "SELECT first_col, s_col, t_col,  FROM names ";
 $res = sqlsrv_query($conn,$sql);
  while ($row = sqlsrv_fetch_array($res)) {
    print(
    $row['first_col'].",".$row['s_col'].",".$row['t_col'].");

 }  


sqlsrv_close( $conn); 
?>

【问题讨论】:

    标签: php sql-server iis-6


    【解决方案1】:

    您的查询失败。这会导致 sqlsrv_query() 返回 false。

    您在查询中的错误是一个错误的逗号:

    $sql = "SELECT first_col, s_col, t_col,  FROM names ";
                                        ^^^^
                                        HERE
    

    删除它,您的查询应该可以工作。

    仅供参考,您不会检查代码中的错误。您应该始终检查是否有故障,如果是,请获取错误消息。如果你这样做了,你会很快发现这一点的。

    【讨论】:

    • (只是为这个答案添加一些注释)这是一个简单的例子php.net/manual/en/function.sqlsrv-fetch-array.php
    • @klapsius 你怎么知道?你做了什么来测试这个?您还进行了哪些其他故障排除?
    • 我只是将查询更改为 $sql = "SELECT * FROM names";和工作
    • 在mS SQL Server中逗号会导致查询失败。
    • 收到此错误,我的表名中有错误/错字。仔细检查您的表名是否正确也出现此错误。
    【解决方案2】:

    我有同样的问题,但是到处找逗号,什么也没有!

    if(isset($_POST['login'])) {
        co();
        $u = addslashes($_POST['username']);
        $p = strtoupper(md5($_POST['password']));
        $app  = 'DanDanTang';
        $uid  = 0;
        $data = array(
            array($app, SQLSRV_PARAM_IN),
            array($u, SQLSRV_PARAM_IN),
            array($p, SQLSRV_PARAM_IN),
            array($uid, SQLSRV_PARAM_OUT)
        );
        $check = sqlsrv_query($conn, "{CALL Mem_Users_Accede (?,?,?,?)}", $data);
    /*line 24*/ sqlsrv_next_result($check);
        if($uid <= 0)
        {
            echo '<script type="text/javascript">alert(\'Nome de Usuario ou Senha invalidos\');</script>';
        }
        else
        {
    

    【讨论】:

    • 这似乎不是问题的答案:(答案应该是一个答案,而不是问题的重复。
    • 我已经看到在这个网站上我不会得到任何帮助,谢谢
    • 我的意思是 - 如果原始问题的答案不能回答您的特定情况,请提出新问题。此特定错误可能有很多原因,因此修复 OP 的问题可能不适合您。我不熟悉 PHP,但我看到您使用的参数在 OP 的帖子中并非如此。 StackOverflow 上的这些规则很苛刻,但为了保持本网站的质量是必要的。
    • 我做了,更多的是我关闭了这个话题并重定向到这个!
    • @Bruno 猜测您的问题可能与它尝试调用Mem_Users_Acced 的方式有关,或者该调用返回计数...请参阅Stored procedure not fetching data ... sqlsrv_query has no errors 并可能编辑您的问题以指出如何它与这个不同。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-23
    • 2014-02-06
    相关资源
    最近更新 更多