Mailinglisten-Archive |
Hi
zu 1.
Die Grenze liegt i.d.R. weit höher und ist nicht beschränkt auf eine bestimmte Anzahl Elemente. Die Grenze ist NUR abhängig von der Konfiguration des MySQL-Servers. Auszug aus der Doku:
>The number of values in the IN list is only limited by the max_allowed_packet value.
zu 2.:
Das ist sehr wichtig, wenn man Strings mit beliebigen Inhalt im IN() unterbringen will.
Bsp: IN ('R\'n\'B','Folk')
Bei numerischem Inhalt ist das nicht nötig.
Bsp: IN (2,3,4)
:-) Sandor
-----Original Message-----
From: ibekowies at shavingkiwis.de [mailto:ibekowies at shavingkiwis.de]
Sent: Tuesday, February 15, 2005 11:57 AM
To: mysql-de at lists.4t2.com
Subject: Re: Select-Abfrage mit Array
Hallo,
Nur zwei Tips dazu:
1. Soweit ich weiss kann die IN() Abfrage nur 256 Elemente
verarbeiten, deshalb bietet sich an, dein Array oder Hash ersteinmal
in 256er Arrays aufzuspalten (in PHP mittels array_chunk()) um diese
in einer Schleife nacheinander abzusetzen.
2. Die Elemente in dem Array/Hash sind VOR dem umwandeln in Strings
MySQL-sicher zu machen, da du den entstehenden String mit den single-
quotes nicht mehr gut escapen kannst. Sprich das Array durchgehen und
jedes Element mit addslashes bzw. mysql_escape_string sicher machen.
Viele Gruesse, Ilja
On 14 Feb 2005 at 23:30, Norbert Pfeiffer wrote:
> Hallo Alfred,
>
> > ich moechte eine Select-Abfrage mit einem Array verknuepfen.
> > z.B. so "select Ort from Adresse where Name in($array);"
> hmm,
> im Prinzip ist das richtig, aber eben nur im Prinzip.
>
> Wenn Du das Array mit: echo $array; anzeigen willst,
> klappt das ja auch nicht. Du musst halt aus dem Array
> einen String formen und den in das Query einfuegen:
> <?
> $array = array('Bernd', 'Rolf', 'Hans', 'Egon');
> $strng = "'".implode($array, "', '")."'";
> $query = "select Ort from Adresse where Name in ($strng)";
> echo $strng."\n";
> echo $query."\n";
> ?>
> Nun sollte es gehen ...
>
>
> m. b. G. Norbert
> _____________________
> normal: 02686-987103
> Notruf: 0163-3613642
> ---------------------
> e.o.m.
>
> --
> Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
> -->> http://www.4t2.com/mysql
>
>
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
--
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive