mdbtools を使用して mdb ファイルに接続し、mdbfile 内のテーブルからデータを取得しています。
テーブルには、次のような値を含むフィールドがあります
0.17, 0.25, 0.17, 0.50, 0.75
これらの数値は、MacBook の MDB Explorer でデータベースを見るとわかります。しかし、PHP で PDO/ODBC 接続を使用して同じフィールドを選択すると、この値が得られます。
000000000000000.
MDB エクスプローラーでフィールド情報を調べると、次のような情報が得られます。
- タイプ:数値
- 精度: 17
- スケール: 2
- 小数点以下の桁数:自動
- 必須:いいえ
次のような値で
1.25, 1.3, 1.4, 1.2 ....
PHP で取得した値。
000000000000001.
MDB エクスプローラーからテーブルを .sql ファイルにダンプすると、次のような値が得られます。
3.60 instead of 000000000000003.
PHPに値を取得すると、切り捨てられ、ゼロで埋められたようです。何が間違っているのか、どうすれば修正できるのか、誰にも提案がありますか?
$query = 'SELECT * FROM Sales';
$db = isset($this->connection) ? $this->connection : $this->openConnection();
$se = $db->prepare($query);
$se->execute();
while( $s = $se->fetch(PDO::FETCH_ASSOC) ){
echo $s['HoursWorked']. PHP_EOL;
}
私も結果をダンプしようとしましたが、フェッチするとすぐに値がそのようになります。
接続は次のとおりです。
new PDO("odbc:DRIVER=MDBTools;DSN=MYMDB;UID=;PWD=;");