我们一直在使用PHP通过ODBC在MS SQL数据库上运行存储过程。每当我们运行sp时,它总是返回相同的两个列名,无论sp run如何。如果结果集具有两列以上,则仅返回前两列。
就像它被上次查询的结果所困扰一样。即使在自己运行时,在仅包含该sp的php文件中,每个sp都返回两个具有与之前相同标题的列,而不管应返回的列数或列标题数。列的内容与我们期望的前两列匹配。
示例:查找地址簿中的联系人返回以下内容,其中包含今天早上执行的sp的列名,其中结果集中只包含两列。
01234 567890 |约翰
01234 567890 |爱丽丝
何时返回
01234 567890 |约翰|史密斯|中号
01234 567890 |爱丽丝|粉笔| ˚F
列名为'number''fName''sName'和'gender'。
代码是:
$query = "{CALL dbo.storedProc('functionName', $search, 'id')}";
$resultSet = odbc_prepare($connection, $query);
odbc_execute($resultSet, array());
odbc_result_all($resultSet);