我的连接已建立,我可以调用我的存储过程:
$pid = $_GET['pid'];
$conn = mssql_connect($server, $username, $password);
...
mssql_select_db('mydb',$conn);
$sproc = mssql_init('consultGetPatientData');
mssql_bind($sproc, '@pid', $pid, SQLINT2);
$result = mssql_execute($sproc);
echo mssql_num_rows($result);
if($result){
$row = mssql_fetch_assoc($result);
...
我的$pid
值被正确传递。$result
值为var_dump
:_
resource(3) of type (mssql result)
并msql_num_rows($result)
产生 0 行。
连接到数据库的用户对consultGetPatientData
存储过程有足够的访问权限:
当我手动运行存储过程时,将返回所需的结果。我的
我的问题:
有没有更好的方法来调试这些类型的错误?
有什么明显的我想念的吗?
谢谢你。
编辑:按要求存储过程代码:
ALTER PROCEDURE [dbo].[consultGetPatientData]
@pid int = 0
AS
BEGIN
SET NOCOUNT ON;
select
pd.pid,
pd.external_id,
pd.fname,
pd.lname,
pd.DOB,
pd.ss,
pd.sex,
pd.allergies,
pb.date,
pb.release
from
patient_data pd
inner join patient_booking_data pb on pd.pid = pb.pid
where
pd.pid = @pid
and pb.date in (
select MAX(date) from patient_booking_data where pid = @pid
)
END