脚本宝典收集整理的这篇文章主要介绍了在PHP中执行存储过程后调用odbc_fetch_array会出现错误[Microsoft] [ODBC SQL Server驱动程序]无效的描述符索引,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
odbc_fetch_array() [function.odbc-fetch-array]: sql error: [Microsoft][ODBC sql Server Driver]Invalid Descriptor Index,sql state S1002 in sqlGetData
这是PHP部分,非常标准
... $id = 240 $user = "user"; $password = "password"; $server = "server"; $database = "database"; $con = odbc_connect("SERVER=$server; DRIVER=sql Server; DATABASE=$database",$user,$password); $res = odbc_exec($con,"exec usp_GetRelatedToID '$id'"); while($row = odbc_fetch_array($res)){ PRint_r($row); }
这是存储过程,非常小而且容易
CREATE PROCEDURE [dbo].[usp_GetRelatedToID] @id int AS BEgin SET NOCOUNT ON; SELECT amENDMENT_ID,WDATE,ALTERATION,VER,REASON From AMENDMENTS WHERE AMENDMENT_ID = $id END
这是AMENDMENTS的表模式
(Column_name) (TyPE) (Nullable) AMENDMENT_ID int no RAD_MaiN_ID int yes WDATE datetime yes USR_ID int yes ALTERATION vArchar yes REASON VARchar yes VER int yes IdentITy Seed Increment Not For Replication AMENDMENT_ID 1 1 0 constraint_type constraint_name constraint_keys Primary KEY (non-clustered) aaaaaAMENDMENTS1_PK AMENDMENT_ID
像这样:
CREATE PROCEDURE [dbo].[usp_GetRelatedToID] @id int AS BEGIN SET NOCOUNT ON; SELECT AMENDMENT_ID,REASON From AMENDMENTS WHERE AMENDMENT_ID = $id END
任何人都可以解释我在哪里做错了,为什么会这样?我有其他存储过程可以提供相同的错误(有些也分享列VER),而且我的存储过程没有.
我尝试了使用odbc_prepare和odbc_execute在两个查询结构{CALL usp_GetRelatedToID(?)}中使用PHP获取数据的不同方法,但这只是给了我更多错误.
由于我不会进入的原因,我不能在PHP中使用Mssql函数,ODBC是我允许连接和查询的唯一方法.
编辑
$stmt = odbc_prepare($con,"{CALL usp_GetRelatedToID($id)}"); $res = odbc_execute($stmt,array()); //or $stmt = odbc_prepare($con,"{CALL usp_GetRelatedToID(?)}"); $res = odbc_execute($stmt,array($id));
两者都返回此错误消息:
Warning: odbc_execute() [function.odbc-execute]: sql error: [Microsoft][ODBC sql Server Driver]Cursor type changed,sql state 01S02 in sqlExecute
以上是脚本宝典为你收集整理的在PHP中执行存储过程后调用odbc_fetch_array会出现错误[Microsoft] [ODBC SQL Server驱动程序]无效的描述符索引全部内容,希望文章能够帮你解决在PHP中执行存储过程后调用odbc_fetch_array会出现错误[Microsoft] [ODBC SQL Server驱动程序]无效的描述符索引所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。