0

データベースから値を取得する小さな 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);

これは非常に基本的なため、最初の行をスキップする理由がわかりません。

4

1 に答える 1

0

使用しているODBCドライバーまたは他のライブラリのバグである可能性があります。

その環境で実行される同様のクエリに問題がありますか、またはパラメータを変更して別のデータセットを返すときに問題がありますか?

このクエリはASPから機能するように記述しましたが、他のODBC環境でも実行してみてください。私のお気に入りは、モジュールを備えたActivePythonodbcまたはJDBC-ODBCブリッジを備えたJythonです。このようなコードの例は、私の質問にあります。ODBCを使用してInformixのvarchar列から末尾のスペースを取得する方法

たぶん、最初の行に何か特別なものがありますか?例:最初の列が日時の場合、最初の行に空のデータを返すLinux用のInformixODBCドライバーを見ました。

このクエリが他のODBC環境で機能していることを確認したらすぐに、ODBCトレースを有効にして、作業環境からのトレースとPHPからのトレースを比較してみてください。

于 2013-01-22T10:50:41.100 に答える