我紧跟在ADOdb documentation的指示,我想一个SQL服务器上执行2008数据库,像这样一个存储过程:如何使用ADOdb PHP库执行MSSQL存储过程?
$stmt = $db->PrepareSP('usp_insert_aweber_list');
$db->InParameter($stmt,$id,'List_ID',false,SQLINT4);
$db->InParameter($stmt,$name,'Name',255,SQLVARCHAR);
$db->InParameter($stmt,$campaigns_collection_link,'Campaign_Collections_Link',255,SQLVARCHAR);
$db->InParameter($stmt,$custom_fields_collection_link,'Custom_Fields_Collection_Link',255,SQLVARCHAR);
$db->InParameter($stmt,$http_etag,'HTTP_Etag',255,SQLVARCHAR);
$db->InParameter($stmt,$resource_type_link,'Resource_Type_Link',255,SQLVARCHAR);
$db->InParameter($stmt,$self_link,'Self_Link',255,SQLVARCHAR);
$db->InParameter($stmt,$subscribers_collection_link,'Subscribers_Collection_Link',255,SQLVARCHAR);
$db->InParameter($stmt,$total_subscribers,'Total_Subscribers',false,SQLINT4);
$db->InParameter($stmt,$total_subscribed_subscribers,'Total_Subscribed_Subscribers',false,SQLINT4);
$db->InParameter($stmt,$total_subscribers_subscribed_today,'Total_Subscribers_Subscribed_Today',false,SQLINT4);
$db->InParameter($stmt,$total_subscribers_subscribed_yesterday,'Total_Subscribers_Subscribed_Yesterday',false,SQLINT4);
$db->InParameter($stmt,$total_unconfirmed_subscribers,'Total_Unconfirmed_Subscribers',false,SQLINT4);
$db->InParameter($stmt,$total_unsubscribed_subscribers,'Total_Unsubscribed_Subscribers',false,SQLINT4);
$db->InParameter($stmt,$web_form_split_tests_collection_link,'Web_Form_Split_Tests_Collection_Link',255,SQLVARCHAR);
$db->InParameter($stmt,$web_forms_collection_link,'Web_Forms_Collection_Link',255,SQLVARCHAR);
$rs = $db->Execute($stmt);
if (!$rs){
print $db->ErrorMsg();
echo '<br /><br />';
}
上面的代码位只输出以下错误信息:
[Microsoft][ODBC SQL Server Driver][SQL Server]Procedure or function 'usp_insert_aweber_list' expects parameter '@List_ID', which was not supplied.
我相信我在我的第一个$ db-> InParameter()调用中提供了List_ID参数。如我错了请纠正我。在任何回应'在param名称前添加一个@'之前,文档记录并不需要,我已经尝试过了,它会导致相同的错误消息。
感谢
对于初学者,你可以检查'InParameter'返回的值,看看它实际上是结合值或默默地失败。 – 2012-01-27 18:39:45
@ dev-null-dweller:好的,InParameter调用返回false,但没有解释为什么它失败。任何方式来找出它为什么返回false? – Ryan 2012-01-27 19:23:23