[TYPO3-german] alte mysql Abfrage in die TYPO3 API wandeln
Stephan Schuler
Stephan.Schuler at netlogix.de
Tue Feb 17 19:44:05 CET 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
... E-Mails werden irgendwie merkwürdig, wenn man in Codefragmenten gegen die Autovervollständigung kämpft.
Hier der abgeschnittene Satz:
Wenn du nicht gleich ein Array an Ergebnissen zurück haben möchtest, kannst du auch
> DatabaseConnection::exec_SELETquery()
verwenden und deren Rückgabewert in
> DatabaseConnection::sql_fetch_assoc()
werfen. Das ist dann "fast" dein "mysql_result", nur dass dir das einen vollständigen Datensatz liefert und du dann auf den "dataprod"-Index zugreifen musst.
Stephan Schuler
Web-Entwickler | netlogix Media
Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Web: media.netlogix.de
- -----Ursprüngliche Nachricht-----
Von: Stephan Schuler
Gesendet: Dienstag, 17. Februar 2015 19:38
An: German TYPO3 Userlist
Betreff: AW: [TYPO3-german] alte mysql Abfrage in die TYPO3 API wandeln
Hallo Ralf.
Welche API-Aufrufe hast du denn schon gefunden? Es gibt da nämlich durchaus mehrere, die alle ähnlich schön und letztendlich nur Geschmackssache sind.
Die hier zum Beispiel kannst du einfach verwenden, wenn du einen einzigen Datensatz haben möchtest. Da kommt dann eben dieser eine Datensatz raus wenn es ihn gibt oder FALSE wenn dieser Datensatz nicht existiert.
> DatabaseConnection::exec_SELECTgetSingleRow('pid, tx_templavoila_ds,
> tx_templavoila_next_ds', 'pages', 'uid = ' . (int)$search_uid);
Die hier kannst du verwenden, wenn du mehrere Datensätze haben willst und dann z.B. "foreach" drüber iterieren möchtest.
> DatabaseConnection::exec_SELECTgetRows('dataprod',
> 'tx_templavoila_datastructure', 'uid = ' . (int)$datastructure_uid);
Wobei das hier natürlich Quark ist, "uid=" wird nie mehr als ein Ergebnis liefern, bestenfalls noch gar keines.
Wenn du nicht gleich ein Array an Ergebnissen zurück haben möchtest, kannst du auch
>
Die Schreibweise als statischer Aufruf ist nur, damit die Zeilen nicht so lang werden. Gemeint ist natürlich in allen Fällen die Verwendung von $GLOBALS['TYPO3_DB'], einer Instanz von
> \TYPO3\CMS\Core\Database\DatabaseConnection::exec_SELETquery()
verwenden und deren Result dann in
> \TYPO3\CMS\Core\Database\DatabaseConnection::sql_fetch_assoc()
werfen. Damit hättest du dann "fast" das mysql_result nachgebaut. Nur, dass sql_fetch_assoc den kompletten Datensatz liefert und du dann auf dessen "dataprod"-Index zugreifen musst.
Abgesehend davon dass sich das Ding erst seit einigen Monaten "DatabaseConnection" nennt und früher "t3lib_DB" war sind die Methodenaufrufe übrigens schon ziemlich alt. Sofern du deine Extension nicht aus 3-irgendwas-Zeiten stammt, ist sie also nicht einfach nur zu 6.2 inkompatibel sondern schon seit Anfang an eher "an der API vorbei" gebaut.
Gruß,
Stephan Schuler
Web-Entwickler | netlogix Media
Telefon: +49 (911) 539909 - 0
E-Mail: Stephan.Schuler at netlogix.de
Web: media.netlogix.de
netlogix GmbH & Co. KG
IT-Services | IT-Training | Media
Neuwieder Straße 10 | 90411 Nürnberg
Telefon: +49 (911) 539909 - 0 | Fax: +49 (911) 539909 - 99
E-Mail: info at netlogix.de | Web: http://www.netlogix.de
netlogix GmbH & Co. KG ist eingetragen am Amtsgericht Nürnberg (HRA 13338) Persönlich haftende Gesellschafterin: netlogix Verwaltungs GmbH (HRB 20634)
Umsatzsteuer-Identifikationsnummer: DE 233472254
Geschäftsführer: Stefan Buchta, Matthias Schmidt
- -----Ursprüngliche Nachricht-----
Von: typo3-german-bounces at lists.typo3.org [mailto:typo3-german-bounces at lists.typo3.org] Im Auftrag von Ralf-Rene Schröder
Gesendet: Dienstag, 17. Februar 2015 12:54
An: typo3-german at lists.typo3.org
Betreff: Re: [TYPO3-german] alte mysql Abfrage in die TYPO3 API wandeln
Hi, um kein Durcheinander zu erzeugen habe ich meine kläglichen Versuche jetzt mal weggelassen, und nur den Originalcode gepostet...
für mysql_query() und mysql_num_rows() finde ich API Ersatz, aber an mysql_result() scheitere ich noch...
Wer kann da bitte helfen...
Am 17.02.2015 um 01:54 schrieb Ralf-Rene Schröder:
> Hallo...
> als jemand der mit PHP etwas "unterbelichtet" ist, habe ich das
> Problem, dass ich eine existierende Extension 6.2 tauglich machen
> möchte (eigentlich nur eine Kleinigkeit, aber irgendwie will es nicht
> so wie ich)...
>
> ich habe dort folgende mysql Abfrage drin:
> http://pastebin.com/UNynLQxA (das klappt ja mit 6.2 nicht mehr)
>
> Wie müsste das mit der TYPO3 API aussehen ???
> Schon mal im Voraus ein dickes DANKE dafür...
>
- --
image[FORMAT] - Ralf-René Schröder
http://www.image-format.eu ... Wir geben Ihrem Image das richtige Format _______________________________________________
TYPO3-german mailing list
TYPO3-german at lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
-----BEGIN PGP SIGNATURE-----
Version: PGP Universal 3.3.2 (Build 15704)
Charset: utf-8
wpUDBQFU44v2pp0IwsibV8MBCCcyA/0aPaXtQUNjecU5bs5MLx55ftYdgkQfdxRm
U05KpVdDMPrwMYWtxDLhGz8KoCPotVubb1pcQ7ndUbGtVklRd06HhuG3eZXWrmjl
y2MvFWmEJGmF1QdvvY9QrsAj4Sg3bewkfQNBNheE614orVMJqCfbr8qc7QuZAYuN
ZjL99+zTCA==
=7Il+
-----END PGP SIGNATURE-----
More information about the TYPO3-german
mailing list