2013年5月26日日曜日

php+mdbファイルの取り扱いで困った

最近、作っているサイトにmdbで作られたDBの取り込みで困る事が多い。
ODBCデータソースとしてmdbファイルを登録すればアクセスできるようなので、既存のphpの記述を一部変更して試していると簡単に移行できるものもあれば、移行できなくて困る事もある。

phpにて、MDBファイルを読み込んだ際に、以下のような記述がうまくできなくて、困った困った。 

※mdbファイルは、ODBCデータソースとして登録済みの前提

$conn_id = odbc_connect($db_name,$db_user,$db_pass);
$sql = 'select * from table_name';
$result = odbc_exec($conn_id,$sql);

if(odbc_num_rows($result)){
//処理を実行(これが実行できない)
}

結論としては、「odbc_num_rows」が使えないという話ですが、phpマニュアルには以下の注記があります。

注意:
SELECT の後に利用可能な行の数を定義するために odbc_num_rows() を使用した場合、 多くのドライバにおいて、-1 が返されます。

最初は気にもしなかったのですが、これが原因でした。
アクセスのファイルは、MySQLにインポートしてから処理する方向で検討します。

0 件のコメント: