我从一个小的PHP脚本中检索数据库中的值。它有效,但它只是缺少记录集的第一个记录。
以下是代码:
$conn = odbc_connect("database","user","passwd");
if (!$conn) {
echo $php_errormsg;
die("Connection failed");
}
$sql = "EXEC dbo.pr_stored_procedure param1, param2";
echo ("sql=". $sql."\n");
$rs=odbc_exec($conn,$sql);
while(odbc_fetch_row($rs)) {
$item1 = odbc_result($rs,"item1");
$item2 = odbc_result($rs,"item2");
echo($item1 . " " . $item2);
}
odbc_close($conn);
我不明白为什么它会跳过第一行,因为这是非常基本的。
答案 0 :(得分:0)
可能是ODBC驱动程序或您使用的其他库中的错误。
您是否在该环境中执行类似查询或更改params以返回不同数据集时遇到问题?
您已经编写了此查询可以在ASP中运行,但也尝试在其他ODBC环境中执行它。我最喜欢的是带有odbc
模块的ActivePython或带有JDBC-ODBC桥的Jython。您可以在我的问题中找到此类代码的示例:How to get trailing spaces from varchar column in Informix using ODBC
也许第一排有什么特别之处?示例:我见过Linux的Informix ODBC驱动程序,如果第一列是datetime,则返回第一行的空数据。
只要您看到此查询在其他ODBC环境中工作,请尝试启用ODBC跟踪并将工作环境中的跟踪与PHP中的跟踪进行比较。