NetteDatabase: V datech z MySQL se objevují „nuly“ tam kde se má vracet VARCHAR

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Achse
Člen | 44
+
0
-

Zdravím, mám celkem kuriózní problém. Načítám data z databáze, dvojitý left join, (dvojitá vazba 1:1).

Ukázka celé funckce jež vrací data z Databáze. V tomto případě se $type == 'dojo'

public function getProfile($id, $type) {
        if (!in_array($type, $this->getTypesKeys())) {
            throw new \InvalidArgumentException("Invalid type: '{$type}'");
        }

        return $this->db->fetch("
                SELECT * FROM profile
                LEFT JOIN _{$type} ON profile.id = _{$type}.profile_id
                LEFT JOIN branch ON profile.id = branch.profile_id
                WHERE profile.id = ?", $id);
    }

Dumpnutá data:

Nette\Database\Row(31) {
id ⇒ 1
type ⇒ „dojo“ (4)
user_id ⇒ 2
time_created ⇒ „2011–11–30 00:25:34“ (19)
time_updated ⇒ „2011–11–30 00:25:36“ (19)
flag_organisation ⇒ „1“
profile_id ⇒ 2
name ⇒ 0
organisation_name ⇒ „Achses Dojo“ (11)
url_website ⇒ ""
url_facebook ⇒ ""
url_map ⇒ ""
url_youtube ⇒ ""
url_youtube_channel ⇒ ""
contact_email ⇒ ""
contact_telephone ⇒ ""
owner_name ⇒ ""
owner_surname ⇒ ""
contact_name ⇒ ""
contact_surname ⇒ ""
contact_title ⇒ ""
location_continent ⇒ „europe“ (6)
location_country ⇒ 0
location_state ⇒ „praha“ (5)
location_city ⇒ „praha“ (5)
flag_hq ⇒ „0“
address_city ⇒ „Prague“ (6)
address_street ⇒ 0
address_postalcode ⇒ „12345“ (5)
address_country ⇒ „Czech Republic“ (14)
custom_name ⇒ „Hlavní HQ od Achses DOJO“ (25)

}

Tučně jsou vyznačené ‚divné‘ řádky. Měly by tam být VARCHAR data. Když ten samý dotaz proženu PHPmyAdminem, vše je v pořárku.

Verze Frameworku: Nette Framework (version 2.0-dev released on 2011–12–07)

Struktura tabulek:

---------------------------------------------------------
_dojo
	id			int(20)
	profile_id		int(20)
	name			varchar(200)
	organisation_name	varchar(200)
	url_website		varchar(200)
	url_facebook		varchar(200)
	url_map			varchar(200)
	url_youtube		varchar(200)
	url_youtube_channel	varchar(200)
	contact_email		varchar(200)
	contact_telephone	varchar(200)
	owner_name		varchar(200)
	owner_surname		varchar(200)
	contact_name		varchar(200)
	contact_surname		varchar(200)
	contact_title		varchar(200)
---------------------------------------------------------

---------------------------------------------------------
profile
	id			int(27)
	type			enum('agent','cardgirl','dojo','fighter','group','healthpro','ppvpub','promoter','sensei')
	user_id			int(11)
	time_created		datetime
	time_updated		datetime
	flag_organisation	tinyint(1)
---------------------------------------------------------

---------------------------------------------------------
branch
	id			int(32)
	location_continent	varchar(200)
	location_country	varchar(200)
	location_state		varchar(200)
	location_city		varchar(200)
	profile_id		int(27)
	flag_hq			tinyint(1)
	address_city		varchar(400)
	address_street		varchar(400)
	address_postalcode	varchar(400)
	address_country		varchar(400)
	custom_name		varchar(200)
---------------------------------------------------------

Díky za pomoc.

Editoval Achse (29. 12. 2011 21:18)

ViPEr*CZ*
Člen | 813
+
0
-

Zkuste novější revizi, mělo by to být už ok.

Achse
Člen | 44
+
0
-

Díky mockrát. Aktuální revize z dnešního data šlape krásně. Některé věci jsou tak prosté. Díky. :)

paranoiq
Člen | 392
+
0
-

šlo o tenhle bug: https://github.com/…e/issues/382. už je to opraveno