Herbert: Insert / Update

Hallo, ich bitte um Hilfe
Ich habe Probleme bei Update in Datenbank.
Gibt es eine Aufstellung welche Begrenzer möglich sind ?

Mein Problem:
Ich habe einen bestehenden MySql-Datensatz.
Dieser Datensatz soll dupliziert werden.
Klappt wunderbar.

Aber !!!
Wenn z.B. im Org-Datensatz in 1. Feld ein ' ( Hochkomma )
steht, wird der Befehl nicht korrekt ausgeführt

$nb_fuellen     = "UPDATE l_buch SET
b_eingang       = '$_POST[xn_eingang]',
b_kursort       = '$nschule_zeile[s_schule]'
where b_buchnr  = $neuebuchung ";

Nun bin ich auf die Idee gekommen, dass ich als Begrenzer " ( Anführungzeichen ) verwende; aber die könnten im Feld ja auch vorkommen.

Bin ich vom ganzen Ansatz schon irgendwie verkehrt ?
( wenn ich manuell z.B. über PHPMyadmin die Daten ändere kommen alle Sonderzeichen richtig an )

Ich bin um jeden Tip dankbar
Vielen Dank
Herbert

  1. Hi Herbert,

    Gibt es eine Aufstellung welche Begrenzer möglich sind ?

    Begrenzer wofür? Strings?

    Aber !!!
    Wenn z.B. im Org-Datensatz in 1. Feld ein ' ( Hochkomma )
    steht, wird der Befehl nicht korrekt ausgeführt

    Was heißt nicht korrekt ausgeführt? Was soll drin stehen? Was steht dann fälschlicherweise drin? Kommt eine Fehlermeldung, wenn ja, welche?

    $nb_fuellen     = "UPDATE l_buch SET
    b_eingang       = '$_POST[xn_eingang]',
    b_kursort       = '$nschule_zeile[s_schule]'
    where b_buchnr  = $neuebuchung ";

    Es wäre sinnvoller (ob auch notwendig weiß ich nicht) Variablen im String als solche zu kennzeichnen oder mit dem restlichen String zu Verknüpfen.

    z.B.
    $nb_fuellen = "UPDATE l_buch SET b_eingang = '".$_POST[xn_eingang]."', b_kursort = '".$nschule_zeile[s_schule]'."
    where b_buchnr = ".$neuebuchung;

    Nun bin ich auf die Idee gekommen, dass ich als Begrenzer " ( Anführungzeichen ) verwende; aber die könnten im Feld ja auch vorkommen.

    Das verstehe ich nicht so ganz, was meinst du damit?

    ciao
    romy

  2. hi,

    Wenn z.B. im Org-Datensatz in 1. Feld ein ' ( Hochkomma )
    steht, wird der Befehl nicht korrekt ausgeführt

    Du hast ihn dir zur Kontrolle ausgeben lassen, und dir ist was aufgefallen?

    Nun bin ich auf die Idee gekommen, dass ich als Begrenzer " ( Anführungzeichen ) verwende; aber die könnten im Feld ja auch vorkommen.

    Bin ich vom ganzen Ansatz schon irgendwie verkehrt ?

    Ja.

    Wann immer du Daten in einen bestimmten Kontext bringst, musst du sie entsprechend behandeln.
    In diesem Fall heisst der Kontext MySQL, und die Behandlung übernimmt mysql_real_escape_string().

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }