Suchmuster fürLIKE in Variabler

Suchmuster fürLIKE in Variabler

am 05.02.2006 16:30:29 von Friedrich Baur

Hallo,

habe alles, was gibt, durchsucht, ohne Ergebnis.

Wie kann ich bei

$sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE \'A%\'';

das Suchmuster 'A%' (oder ein anderes) übergeben, also

$suchmuster = 'A%';

$sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE $suchmuster';
Ich habe schon alle möglichen Variationen probiert, die Richtige war
nicht dabei.
Oder geht das gar nicht?

Freundliche Grüße
Friedrich

Re: Suchmuster fürLIKE in Variabler übergeben

am 05.02.2006 17:27:08 von Axel Schwenke

Friedrich Baur wrote:

> habe alles, was gibt, durchsucht, ohne Ergebnis.

Wirlich alles? Da kannst du noch gar nicht fertig sein ;-)

> Wie kann ich bei
>
> $sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE \'A%\'';
>
> das Suchmuster 'A%' (oder ein anderes) übergeben, also
>
> $suchmuster = 'A%';
> $sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE $suchmuster';

Das ist keine SQL-Frage. Je nachdem, ob du hier Perl oder (vermutlich)
PHP zitiert hast, gehört deine Frage in eine andere passende Gruppe.

Aber vielleicht schaust du ja vorher doch noch mal in die jeweilige
Dokumentation. Passende Stichworte wären "Stringinterpolation" und
vor allem "Quoting".


XL

Re: Suchmuster fürLIKE in Variabler

am 05.02.2006 17:51:32 von Friedrich Baur

Axel Schwenke schrieb:
>
> Friedrich Baur wrote:
>
> > habe alles, was gibt, durchsucht, ohne Ergebnis.
>
> Wirlich alles? Da kannst du noch gar nicht fertig sein ;-)

Hör auf. Ich mach schon ein paar Stunden an dem Mist.
Und es gibt hier in der Gruppe Antworten, die aber nicht funktionieren.

> > Wie kann ich bei
> >
> > $sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE \'A%\'';
> >
> > das Suchmuster 'A%' (oder ein anderes) übergeben, also
> >
> > $suchmuster = 'A%';
> > $sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE $suchmuster';
>
> Das ist keine SQL-Frage. Je nachdem, ob du hier Perl oder (vermutlich)
> PHP zitiert hast, gehört deine Frage in eine andere passende Gruppe.

PHP.
Das haben die auch gesagt und mich hierher geschickt.

> Aber vielleicht schaust du ja vorher doch noch mal in die jeweilige
> Dokumentation. Passende Stichworte wären "Stringinterpolation" und
> vor allem "Quoting".
>
> XL

Danke trotzdem für die Antwort.
Grüßle
Friedrich

Re: Suchmuster für LIKE in Variabler übergeben

am 05.02.2006 19:14:07 von Weinzierl Stefan

Friedrich Baur schrieb:

> Hallo,
>
> habe alles, was gibt, durchsucht, ohne Ergebnis.
>
> Wie kann ich bei
>
> $sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE \'A%\'';

Was sucht das '1 AND' da?


> das Suchmuster 'A%' (oder ein anderes) übergeben, also
>
> $suchmuster = 'A%';
>
> $sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE $suchmuster';
$sql='SELECT `NAME` FROM `links` WHERE `NAME` LIKE "$suchmuster"';

Stefan

Re: Suchmuster für LIKE in Variabler übergeben

am 05.02.2006 19:31:47 von Helmut Chang

Weinzierl Stefan schrieb:

> $sql='SELECT `NAME` FROM `links` WHERE `NAME` LIKE "$suchmuster"';

IMHO gaaanz schlecht. Weil der Stringbegrenzer in SQL ist normalerweise
', nicht ".

gruss, heli

Re: Suchmuster für LIKE in Variabler übergeben

am 05.02.2006 20:33:04 von cmueller

Helmut Chang wrote:

> Weinzierl Stefan schrieb:
>
>> $sql='SELECT `NAME` FROM `links` WHERE `NAME` LIKE "$suchmuster"';
>
> IMHO gaaanz schlecht. Weil der Stringbegrenzer in SQL ist normalerweise
> ', nicht ".

Noch schlechter ist allerdings, dass PHP bei einfachen Hochkommata
den Wert von $suchmuster nicht einsetzt.

Das sollte funktionieren:
$sql = "SELECT `NAME` FROM `links` WHERE `NAME` LIKE '$suchmuster'";

Und bitte nicht vergessen, $suchmuster vorher passend zu escapen,
speziell wenn der Parameter "von außen" gesetzt wird.


Christian.

Re: Suchmuster für LIKE in Variabler übergeben

am 05.02.2006 20:33:37 von Weinzierl Stefan

Helmut Chang schrieb:
> Weinzierl Stefan schrieb:
>
>> $sql='SELECT `NAME` FROM `links` WHERE `NAME` LIKE "$suchmuster"';
>
>
> IMHO gaaanz schlecht. Weil der Stringbegrenzer in SQL ist normalerweise
> ', nicht ".
>
> gruss, heli

Dann halt andersrum:

$sql="SELECT `NAME` FROM `links` WHERE `NAME` LIKE '$suchmuster'";

Stefan

Re: Suchmuster für LIKE in Variabler übergeben

am 05.02.2006 21:53:20 von Christian Kirsch

Weinzierl Stefan wrote:
> Friedrich Baur schrieb:
>
>
>>Hallo,
>>
>>habe alles, was gibt, durchsucht, ohne Ergebnis.
>>
>>Wie kann ich bei
>>
>>$sql = 'SELECT `NAME` FROM `links` WHERE 1 AND `NAME` LIKE \'A%\'';
>
>
> Was sucht das '1 AND' da?
>

Lass mich raten: Da spielt jemand mit PHPMy-Dingens ...