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