【发布时间】:2016-02-11 15:46:04
【问题描述】:
此警告可能由于许多不同的原因而发生,但是,我认为我的问题是表APPT 是空的/并且不包含任何row 和t_schedule_id。我阅读了每个可能已经有我答案的问题,并且所有答案都说明了同样的事情“您的 SQL 查询不成功,并且正在返回 FALSE 布尔值”..所以是的,我知道查询返回 false 因为那里t_schedule_id 是 0 行,这就是我的观点,我希望我的函数在有 0 行时返回 int 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 如果是 0 是 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);
【问题讨论】:
-
为什么不改为查询
count(t_schedule_id)? -
我会收到这个警告
warning: sqlsrv_fetch_array() expects parameter 1 to be resource, boolean given -
快速浏览会发现您的 SQL 代码中存在明显的语法错误。您声称已阅读的那些答案都没有解释如何获取错误消息?
-
@ÁlvaroGonzález nop 他们中的大多数人只是声称
the query可能是错误的;错字、名称等 -
请查看sqlsrv_errors()。
标签: php sql-server