Rückgabeformatvon fetchRow

Rückgabeformatvon fetchRow

am 06.02.2006 12:38:11 von Martin Werthmoeller

Hallo *,

ich habe ein Problem bei der Portierung einer kleinen Anwendung von MySQL
auf sqlite. Als Datenbankabstraktion kommt Pear::DB zum Einsatz. Das ganze
funktioniert soweit ganz gut. Allerdings kommt es bei der Rückgabe von
Assoziativen Arrays von fetchRow() (DB_FETCHMODE_ASSOC) zu Problemen.

Bei Verwendung von MySQL wird ein Array der Form

[ 'Attributbezeichner' => 'Wert',
'Attributbezeichner2' => 'Wert2',
...
]

zurückgegeben. Beim Verwendung von sqlite jedoch ein Array wie:


[ 'Relation.Attributbezeichner' => 'Wert',
'Relation.Attributbezeichner2' => 'Wert2',
...
]

In der Applikation soll auf das Array dann wie folgt zugegriffen werden:

$var = $row['Attributbezeichner']

Ich möchte das Datenbanksystem gern umstellen, indem ich ausschließlich
den $dsn String ändere und nicht noch im Code herumschrauben muss.

Ist das oben beschriebene Verhalten ein Bug von Pear bzw. der darunter
liegenden Datenbankbibliotheken oder läßt sich das irgendwo konfigurieren?

Gruß,
martin!

Re: Rückgabeformat von fetchRow

am 06.02.2006 13:35:46 von Niels Braczek

Martin Werthmoeller schrieb:

> Ich möchte das Datenbanksystem gern umstellen, indem ich ausschließlich
> den $dsn String ändere und nicht noch im Code herumschrauben muss.
>
> Ist das oben beschriebene Verhalten ein Bug von Pear bzw. der darunter
> liegenden Datenbankbibliotheken oder läßt sich das irgendwo konfigurieren?

Reine PEAR-Fragen solltest du hier stellen: http://www.pear-forum.de/
Da sind die Aussichten auf befriedigende Antworten besser.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----

Re: Rückgabeformatvon fetchRow

am 06.02.2006 14:05:05 von Martin Werthmoeller

Niels Braczek meinte:
> Martin Werthmoeller schrieb:
>
> Reine PEAR-Fragen solltest du hier stellen: http://www.pear-forum.de/
> Da sind die Aussichten auf befriedigende Antworten besser.
>
Vielen Dank für den Tipp. Ich werde es mal versuchen.

Nach meiner Erfahrung ist das Nieveau im Usenet bzw. Mailinglisten um
Größenordnungen höher als in Web-Foren, daher hatte ich erst einmal hier
gefragt.

Gruß,
martin!

Re: Rückgabeformat von fetchRow

am 06.02.2006 15:45:23 von Niels Braczek

Martin Werthmoeller schrieb:
> Niels Braczek meinte:
>> Martin Werthmoeller schrieb:
>>
>> Reine PEAR-Fragen solltest du hier stellen: http://www.pear-forum.de/
>> Da sind die Aussichten auf befriedigende Antworten besser.
>>
> Vielen Dank für den Tipp. Ich werde es mal versuchen.
>
> Nach meiner Erfahrung ist das Nieveau im Usenet bzw. Mailinglisten um
> Größenordnungen höher als in Web-Foren, daher hatte ich erst einmal hier
> gefragt.

War auch grundsätzlich nicht falsch. Die Erfahrung zeigt allerdings,
dass PEAR-Fragen hier häufig stiefmütterlich behandelt werden.

MfG
Niels

--
| http://www.kolleg.de · Das Portal der Kollegs in Deutschland |
| http://www.bsds.de · BSDS Braczek Software- und DatenSysteme |
| Webdesign · Webhosting · E-Commerce · Mambo Content Management |
------------------------------------------------------------ ----

Re: Rückgabeformatvon fetchRow (SOLVED)

am 06.02.2006 16:33:48 von Martin Werthmoeller

Martin Werthmoeller meinte:
> Hallo *,
>
> [sqlite_fetch_array() liefert Key in der Form 'relation.attribut']

Ich habe das Problem jetzt lokalisieren können und eine
zufriedenstellenden Lösung gefunden.

Die Form des Rückgabewerts wird von der sqlite-Library und ist so
voreingestellt, dass die o.g. Form zurückgeliefert wird. Das Verhalten
kann mit einem PRAGMA Query geändert werden.

> Ich möchte das Datenbanksystem gern umstellen, indem ich ausschließlich
> den $dsn String ändere und nicht noch im Code herumschrauben muss.
>
Ich rufe setze jetzt direkt nach dem Connect den folgenden Query ab:

'PRAGMA short_column_names = 1'

Damit wird das gleiche Verhalten von Pear::DB wie bei der MySQL
Abstraktion erreicht.

Vielen Dank und viele Grüsse,
martin!