データ型が「テキスト」である MS SQL データベースのフィールドの内容を表示しようとしています。PC で MS Excel を使用してデータベースに接続すると、値は次のようになります。
発送日: 18/10/12 Toll IPEC Connote 番号: XXX XXX XXXX
Linux 用の Microsoft ODBC ドライバーを使用して PHP でデータベースに接続すると、テキスト フィールドの出力にランダムな文字が表示されます。これは、まったく同じスクリプトを実行するたびにわずかに異なります。過去4回の出力は次のとおりです。
Xisep)!ØwXment.class.php))
5isep)!ment.class.php))
µ}isep)!Ø}ment.class.php))
t)!!Owner_IDt)Ø©Ø8
「ment.class.php」ビットがどこから取得されているのかわかりません。これは私のクラスの 1 つの名前の末尾のように見えますが、この特定のスクリプトに含まれているものではありません。ドライバーが壊れているか、それとも何ですか?他のすべてのデータ型 (int、varchar、datetime など) は正しく表示されるようですが、問題はこの 1 つのテキスト フィールドでのみ発生するようです。
コードは次のとおりです。
<?php
require('ConnectWise.inc.php');
$config = new CW_Config;
// Connect to database
$dbcnx = odbc_connect("ConnectWise", $config->db_username, $config->db_password);
// Query database
$query = "select * from Billing_Log where Invoice_Number = '24011'";
$result = odbc_exec($dbcnx, $query);
while ($row = odbc_fetch_array($result)) {
echo $row['Top_Comment'] . "\n";
}
odbc_close($dbcnx);
最後の数回の試行の出力は次のとおりです。
\3ȶä!!¶äY!
öÈö§!!ö§Y!
&Èö×!!ö×Y!