Php sqlsrv_fetch_array()希望参数1是资源,布尔值在
我试图打印记录从我的数据库IIS,MSSQL PHP,但我有这个错误 警告:sqlsrv_fetch_数组要求参数1为资源,布尔值在中给定Php sqlsrv_fetch_array()希望参数1是资源,布尔值在,php,sql-server,iis-6,Php,Sql Server,Iis 6,我试图打印记录从我的数据库IIS,MSSQL PHP,但我有这个错误 警告:sqlsrv_fetch_数组要求参数1为资源,布尔值在中给定 <?php $serverName ="name\SQLEXPRESS"; $usr="sa"; $pwd="pasw"; $db="dbname"; $connectionInfo = array("UID" => $usr, "PWD" => $pwd, "Database" => $db); $conn = sqls
<?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);
?>
您的查询失败。这会导致sqlsrv_查询返回false 查询中的错误是错误的逗号:
$sql = "SELECT first_col, s_col, t_col, FROM names ";
^^^^
HERE
删除它,您的查询就会正常工作
仅供参考,您不会检查代码中的错误。您应该始终检查是否有故障,如果是,则获取错误消息。如果你这么做了,你会很快发现这一点。我也有同样的问题,但到处找逗号,什么都找不到
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
{
只是想给这个答案添加一些注释,这里有一个简单的例子@klapsius,你怎么知道的?你做了什么来测试这个?您还做了哪些疑难解答?我只是将查询更改为$sql=SELECT*FROM NAME;在mS SQL Server中,逗号将导致查询失败。收到此错误时,我的表名中有一个错误/键入错误。再次检查您的表名是否正确,并出现此错误。这似乎不是问题的答案:答案应该是答案,而不是问题的副本。我已经在这个网站上看到,我不会收到任何帮助,谢谢我的意思是-如果原始问题的答案不能回答您的特定情况,请提出新问题。这个特殊错误可能有很多原因,所以修复OP的问题可能不适合您。我不熟悉PHP,但我看到您使用的参数与OP文章中的不同。这些关于StackOverflow的规则很苛刻,但为了保持这个网站的质量是必需的。我做到了,更多的我关闭了这个主题并重定向到这个@Bruno猜测您的问题可能与它试图呼叫Mem_Users_Acced的方式有关,或者与该呼叫返回计数有关。。。查看并编辑您的问题,指出它与此问题的不同之处。