2016-04-20 17 views
0

PHPを使用してアクセスデータベースを照会するには、以下のコードを使用しています。アクセス結果から日付が得られないPHP

<?php 

// Create an instance of the ADO connection object 
$conn = new COM ("ADODB.Connection") or die("Cannot start ADO"); 

// Define the connection string and specify the database driver 
$connStr = "PROVIDER=Microsoft.Ace.OLEDB.12.0;Data Source=".realpath("HS_BE.accdb").";"; 

// Open the connection to the database 
$conn->open($connStr); 

// Declare the SQL statement that will query the database 
$query = "SELECT TOP 20 * FROM Valuations WHERE Consultant = '1'"; 

// Execute the SQL statement and return records 
$rs = $conn->execute($query); 

$num_columns = $rs->Fields->Count(); 
$arrColumns = array(); 

for ($i=0; $i < $num_columns; $i++) { 
    $arrColumns[] = $rs->Fields($i); 
    $newArr[] = $rs->Fields($i)->name; 
} 

$arrResult = array(); 

while (!$rs->EOF) { 
    $arrRow = array(); 
    for ($i=0; $i < $num_columns; $i++) { 
     $arrRow[$newArr[$i]] = $arrColumns[$i]->value; 
    } 
    $arrResult[] = $arrRow; 

    $rs->MoveNext(); 
} 
header('Content-Type: application/json'); 
echo json_encode($arrResult); 

これは半分働いている、すべてのテキストフィールドが細かい戻ってきているが、日付フィールドは、内部の何も} {として戻ってきている、誰もがその日付フィールドを無視することを選択理由を知っていますか?

EDIT とき、私のvar_dump $ arrResult JSONに変換する前に、これは、日付のいずれかがあるものです:あなたが最も可能性の高いあなたの前に日付の接続やutf8_encode()charset=utf8を追加する必要が

["Appointment"]=> 
    object(variant)#77 (0) { 
    } 

答えて

0

json_encode()それ。

また、使用することができます

mysql_query('SET CHARACTER SET utf8') 

あなたSELECTクエリの前に。

+0

それはまだそれをやっている、detais単に「午前11時」と「04年04月12」何のように働いていましたそれは表示されていませんが、私は電話番号columnを返します。 –

+0

json_encode()の前にどうやって戻りますか? $ arrResultのような日付は何ですか? –

+0

["予約"] => オブジェクト(バリアント)#77(0){ } –

0

私はこれでした:

$arrRow[$newArr[$i]] = (string)$arrColumns[$i]->value; 

それを文字列に変換し、それが

関連する問題