0

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=;");
4

0 に答える 0