sqlsrv_fetch_array()期望参数1为资源,布尔值为

时间:2014-05-22 13:36:39

标签: php sql-server iis-6

这不是一个被公开的问题。 我尝试从我的数据库(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); 
?>

2 个答案:

答案 0 :(得分:8)

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

您的查询中的错误是错误的逗号:

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

删除它,您的查询应该有效。

仅供参考,您不需要检查代码中的错误。您应该始终检查是否有失败,如果是,请收到错误消息。如果你这样做,你会很快发现这一点。

答案 1 :(得分:-1)

我有同样的问题,但是到处都找不到逗号!

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
    {