2010-09-07 11 views
10

Podczas korzystania z obiektu mysql_fetch_object() do zwracania obiektów z zapytania MySQL, czasami nazwy kolumn zawierają spacje i nie można uzyskać aliasów, na przykład podczas uruchamiania SHOW CREATE PROCEDURE. Definicja procedury jest zwracana w kolumnie o nazwie Create Procedure. W moim przypadku warstwa abstrakcji danych zezwala tylko na użycie mysql_fetch_object(), więc nie mogę po prostu użyć mysql_fetch_assoc() do obejścia tego problemu.W jaki sposób uzyskujesz dostęp do kolumn za pomocą spacji przez mysql_fetch_object?

Czy mogę uzyskać dostęp do kolumn ze spacjami podczas korzystania z mysql_fetch_object()?

Odpowiedz

4

Zajęło mi to trochę czasu, więc pomyślałem, że mogę to opublikować, stąd szybka odpowiedź. :)

// Internally, this db abstraction layer uses mysql_fetch_object(). 
$query = $db->query('SHOW CREATE PROCEDURE `%s`', 'test'); 
foreach ($query as $row) { 
    $procedure = $row->{'Create Procedure'}; 
} 

Nie wiem, czy jest to specyficzne dla wersji PHP, ale działa pod PHP 5.3.1 na Windowsie.

17

Generalnie

$recordname->{"my column name"} 

rade.

Można również wykonać print_r($record);, aby dowiedzieć się, jak kolumny są reprezentowane w obiekcie.

+0

Pracowałem dla mnie - idealnie. –

-2

Użyj cytatów. Przykład: "nazwa ze spacjami"

+0

Nie bardzo opisowa odpowiedź, to. '$ obj = (obiekt) array ("nazwa ze spacjami" => "testowanie"); echo $ obj -> "nazwa ze spacjami"; nie działa, potrzebujesz nawiasów klamrowych. – Drarok

Powiązane problemy