0

単純な「SELECT * FROM Invoices」クエリを使用して、PDO を使用して mysql-db をクエリしています。クエリの結果に対して print_r を実行すると、「ビット」タイプのすべての列が空白の値を取得するようになりました

Array
(
    [0] => stdClass Object
        (
            [ID] => 1
            [Client] => 1
            [Title] => Mars 2012
            [Issued] => 2012-04-02
            [Expiration] => 2012-04-22
            [OurReference] => 1
            [TheirReference] => 
            [Payed] => 
            [Sent] => 
        )

    [1] => stdClass Object
        (
            [ID] => 2
            [Client] => 4
            [Title] => Apputveckling
            [Issued] => 2012-04-30
            [Expiration] => 2012-05-21
            [OurReference] => 1
            [TheirReference] => 
            [Payed] => 
            [Sent] => 
        )

    [2] => stdClass Object
        (
            [ID] => 3
            [Client] => 4
            [Title] => Administration
            [Issued] => 2012-05-28
            [Expiration] => 2012-06-18
            [OurReference] => 1
            [TheirReference] => 
            [Payed] => 
            [Sent] => 
        )

)

それはどうしてですか?これは getData-method im を使用しています

public function getData($sql, $data = null)
{
    $statement = $this->query($sql, $data);
    try
    {
        $result = $statement->fetchAll();
    }
    catch(Exception $e)
    {
        echo "Error: " . $e->getMessage() . " ";
        return array();
    }

    if(count($result) > 1)
    {
        return $result;
    }
    else if(count($result) == 1)
    {
        return $result[0];
    }
    else
    {
        return array();
    }
}

編集:言及するのを忘れました、行はデータベースのフィールドに値を持っています

4

1 に答える 1

3

ビット フィールドはブール値にマップされます。ブール値は、質問に表示falseされるprint_rのとまったく同じ方法で出力されます。これは、次のことを示すテスト スクリプトです。

$a = array(new stdClass());
$a[0]->Payed = false;
print_r($a);

代わりにvar_dumpを使用すると、各プロパティのデータ型とブール コンテンツの両方を確認できるはずです。

于 2012-06-26T14:06:47.717 に答える