警告:sqlsrv_num_rows() 期望参数 1 为资源,给定布尔值[重复]

2024-04-29

出现此警告的原因有很多,但是,我认为我的问题是该表APPT为空/并且不包含任何内容rowt_schedule_id。我阅读了可能已经有答案的每个问题,并且所有答案都说明了同样的事情“您的 SQL 查询未成功并且返回 FALSE 布尔值”。所以是的,我知道查询返回 false 因为有是 0 行t_schedule_id这就是我的观点,我希望我的函数返回int 0当有0排与t_schedule_id

函数.php

function get_appt($schedule_id,$conn){

    $query = "select t_schedule_id as t_schedule_id from [dbo].[APPT] where t_schedule_id = .$schedule_id.; ";

    $stmt = sqlsrv_query($conn,$query);

    $row_count = sqlsrv_num_rows($stmt);

    if ($row_count === false){
       return 0;
    }else{
       return $row_count;
    }
 }

应用程序.php

$get_appt = get_appt(1, $conn);
echo $get_appt;

所以,我的问题是我怎样才能停止得到这个warning,无论表是否返回0 If is 0 is 0如果是一个number > 0然后返回该数字。

PS:我知道我的查询名称没有错误,例如table name, column name etc ...而且,当我echo $get_appt;我得到了价值0但也有警告

警告:sqlsrv_num_rows() 期望参数 1 为资源,布尔值在第 220 行给出

这是第 220 行$row_count = sqlsrv_num_rows($stmt);


由于查询字符串中存在语法错误,查询无法执行。最后,sqlsrv_num_rows($stmt)抛出错误。删除 $schedule_id 周围的点,使 $query 变为:

$query = "select t_schedule_id as t_schedule_id from [dbo].[APPT] where t_schedule_id = $schedule_id";

使用 sqlsrv_errors() 检查错误将有助于调试未来的问题。这将返回一个数组并可以使用以下命令输出print_r(sqlsrv_errors(),true); - see http://php.net/sqlsrv_errors http://php.net/sqlsrv_errors.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

警告:sqlsrv_num_rows() 期望参数 1 为资源,给定布尔值[重复] 的相关文章

随机推荐