markus: sonderzeichen

moin,
ich möchte ein Array in einen String verwandeln, damit die Werte aus dem Array in einer sql-abfrage auswerten kann. Schreib ich diesen code direkt in eine php datei als skript funktioniert es.
das problem soll allerding mit einer klasse gelöst werden, ich erzeuge eine neue instanz der klasse und alles funktioniert nur bekomme ich kein "  '  " einfaches anführungszeichen hin.
als Ausgabe bekomme ich immer ein \' oder ' egal wie ich es bis jetzt versucht habe. Ich habe schon splashslashes, htmlentities, htmlspecialchars
ausprobiert doch immer das gleiche. wenn ich in meiner html datei auf die bearbeitet variable zugreife wird immer soetwas ausgegeben :
" 'blah' or Kategorie = 'blah';

hier der code =

function setKategorie($kategorien){

// Prüft ob die übergebene Variable ein Array ist, wenn JA wird das Array in
  // einen String umgewandelt, welcher von einer SQL-Abfrage verarbeitet werden
  // kann

if(is_array($kategorien)){

foreach($kategorien as $puffer){
    if($zaehler == 0 ){
     $kategorien_puffer = "'$puffer'";
     $zaehler = 1;
    }// von if($zaehler == 0)

else{
     $kategorien_puffer = "$kategorien_puffer  OR kategorie = '$puffer'";
    } // von else

} // von foreach;

$this->kategorien = $kategorien_puffer;

}// von kategorie.isArray

}// von setKategorie

danke für die antworten :)

  1. Hallo Markus,

    ich möchte ein Array in einen String verwandeln, damit die Werte aus dem Array in einer sql-abfrage auswerten kann.

    es gibt viele Datenbankmanagementsysteme und so ziemlich jedes bringt seine eigenen Maskierungszeichen mit. Beispielsweise würdest Du in Transact-SQL das Hochkomma durch ein zweites Hochkomma maskieren.

    Schreib ich diesen code direkt in eine php datei als skript funktioniert es. das problem soll allerding mit einer klasse gelöst werden, ich erzeuge eine neue instanz der klasse und alles funktioniert nur bekomme ich kein "  '  " einfaches anführungszeichen hin.

    Vermutlich ist Dein einziges Zielsystem MySQL. Kennst Du die Funktion mysql_real_escape_string()? Bitte beachte die Hinweise im Handbuch bezüglich "magic quotes".

    Freundliche Grüße

    Vinzenz

  2. echo $begrüßung;

    [...] bekomme ich kein "  '  " einfaches anführungszeichen hin.
    als Ausgabe bekomme ich immer ein \' oder ' egal wie ich es bis jetzt versucht habe.

    Vermutlich hast du ein Magic-Quotes-Problem. Überprüfe doch mal mit phpinfo() die Einstellungen zu magic_quotes_*.

    echo "$verabschiedung $name";