此警告可能由于多种原因而发生,但是,我认为我的问题是表APPT
为空/并且不包含row
t_schedule_id
}}。所以,在发布这个问题之前,我会阅读每个可能已经有你的答案的问题,相信我,我做了,我不想要低估...所以,所有答案都说明了同样的事情"你的SQL查询没有成功,返回了一个FALSE布尔值" ..是的,我知道查询返回false,因为有0行t_schedule_id
这就是我的观点,我希望我的函数在int
行0
时返回0
t_schedule_id
function.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;
}
}
application.php
$get_appt = get_appt(1, $conn);
echo $get_appt;
所以,我的问题是我如何停止获取此warning
,无论表格是0
如果0
是0
,如果是{{1}然后返回那个号码。
谢谢,
PS:我知道我的查询名称中没有错误,例如number > 0
而且,当我table name, column name etc ...
时,我得到的值为echo $get_appt;
,但还有警告
警告:sqlsrv_num_rows()期望参数1为资源,第220行中给出布尔值
这是第220行0
答案 0 :(得分:2)
由于查询字符串中的语法错误,查询无法执行。因此,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);
输出 - 请参阅
http://php.net/sqlsrv_errors
答案 1 :(得分:0)
怎么样:
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);
if ($stmt === false){
return 0;
}else{
return sqlsrv_num_rows($stmt);
}
}
答案 2 :(得分:0)
我认为语法如下:
$query = "select t_schedule_id as t_schedule_id from [dbo].[APPT] where t_schedule_id =" .$schedule_id."; ";
您错过了2个"
字符