【发布时间】:2012-06-07 16:01:39
【问题描述】:
我对这个 SQL/PHP/ODBC/FBI/TLA 等世界 100% 是全新的,所以如果我所问的内容非常基本,我深表歉意。
我正在使用一个存储过程,该存储过程使用一个经纬度邮政编码数据库将一个中心邮政编码和一个给定的英里半径作为 2 个输入参数,然后返回一个在给定英里半径内的邮政编码数组。当我在我的 SQL 查看器中运行它时它工作得很好,但是当我尝试使用 php 来做同样的事情时,我只会得到无效的参数错误。
$connstr = "Driver={SQL Server};Server=MyServer;Database=MyDatabase;";
$conn = odbc_connect($connstr, "Name", "PW");
$query_string = " CALL FindZipCodeWithinRadius(?,?) ";
$sp = odbc_prepare($conn, $query_string);
$zipcodes = odbc_execute($sp,array(" 14602, 35"));
print_r($zipcodes);
当我运行这样的代码时,我收到错误“参数不足(1 应该是 2)”
我在这些输入参数周围尝试了不同的双引号/单引号迭代,但它们要么给我上述错误,要么给我这个错误:
“SQL 错误:[Microsoft][ODBC SQL Server Driver]参数号无效,SQL 状态 S1093”
快速谷歌搜索让我相信第二个错误意味着有太多参数被读入 proc,那么我是如何在跳过所需的 2 时从 1 变为 many 的?
如果有区别的话,数据库是在 SQL 2000 上的。
有什么想法吗?感谢您的任何帮助,您可以提供。
【问题讨论】:
-
请发布您的存储过程。我们可能整天都在这里猜测它需要什么。你试过
array("14602", 35)吗?
标签: php stored-procedures odbc