Announcement

Collapse
No announcement yet.

Update auf Feld nicht möglich

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Update auf Feld nicht möglich

    Moin, moin!

    Bin da mal wieder vor einem Rätsel!
    Nutze die MYSQL 5.0.45-community DB.

    Ursprünglich war die hier zu überarbeitende DB eine Access-DB, die in MYSQL exportiert wurde.
    Exportiert bedeutet hierbei, aus der Access-DB wurde ein DUMP MYSQL-Like gezogen und dieser DUMP in MYSQL importiert. Da dies nicht meine erste Arbeit dieser Art ist, weiter auch kein Problem. Diese DB wird nun erstmal fürs Intranet mit ein paar PHP-Abfragen und Masken versehen und später auch Teilbereiche fürs Web zur Verfügung gestellt.

    Eine Spalte, varchar 50; utf8_general_ci;Ja;NULL, läßt sich nicht beschreiben. Die Daten in den Feldern auszulesen funktioniert problemlos, wie auch mit den weiteren 21 Tabellen die von 7-40 Spalten beinhalten.

    PHP Code:
    mysql_query("UPDATE tabelle SET StaLaFertigstellung = '".utf8_decode($_POST['StaLaFertigstellung'])."' 
    WHERE ID = '"
    .$_REQUEST['ID']."' LIMIT 1") or die(mysql_error()); 
    Es gibt keine Fehlermeldung, die Seite bleibt weis.
    Die selbe Query mit anderen Feldern läuft ohne Probleme.

    Hat jemand eine Idee für mich?
    Grüße Franz

  • #2
    Hallo,

    du führst eine explizite Umcodierung von UTF8 nach ISO-8859-1 durch (utf8_decode()) und fügst das Ganze in eine UTF8-kodierte Spalte ein.
    Das ist reichlich umständlich und damit das funktioniert muß die PHP-Seite mit dem Formular UTF8- und die Clientverbindung zur DB (mit mysql_client_encoding() überprüfen) ISO-8859-1-kodiert sein. Ist das so?
    Beim Einfügen von Formulardaten sollte in jedem Fall auch eine Maskierung mittels mysql_real_escape_string() stattfinden.

    Kannst du diese Spalte mit einem anderen Client (PHPMyAdmin, Kommandozeile) updaten?

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo,

      habe über PHPMyAdmin ein Update gemacht und es funktionierte.

      Die Umcodierung nach utf8 funktioniert an anderer Stelle bereits, sogar im selben Formular.
      Habe für die Umständliche Handhabe keine andere Lösung. Eine ursprünglich Access-2 DB erst auf Access 2000 und hiervon der Dump. Da ist das Kodierung vorgegeben, ich sehe bzw. sah keine Alternative.

      Die Maskierung der Daten habe ich bislang bei Feldern gemacht, die von externen Usern genutzt werden können. Im internen Bereich werden sich die User auf keine Spielchen einlassen, ihre eigenen Daten abzuschießen. - Muss ich wohl nochmal darüber nachdenken.

      Tatsächlich ist die query deutlich länger und es werden etwa 10 Felder in 10 unterschiedlichen Spalten aktualisiert.
      Die gleiche Umkodierung findet im String direkt davor, nur mit einem anderen Feld, auch schon statt und es läuft durch.

      In dem nicht zu aktualisierendem Feld stehen Zahlen getrennt durch einen Backslash.

      Muss für heute Schluss machen.

      Vielen Dank Franz

      Comment


      • #4
        Hallo,

        nun läuft es.
        Habe die Decodierung für das Feld weg gelassen, da offensichtlich ohnehin nur Nummerische Werte darin stehen.
        Habe die Spalte geändert, Null -> nein

        und den verdammten Web-Server neu gestartet.

        Ist zwar insgesamt keine befriedigende Antwort, doch es läuft.

        Vielen Dank für die Anregungen, Franz

        Comment


        • #5
          Hallo,
          Originally posted by FraHa View Post
          ...Die Maskierung der Daten habe ich bislang bei Feldern gemacht, die von externen Usern genutzt werden können. Im internen Bereich werden sich die User auf keine Spielchen einlassen, ihre eigenen Daten abzuschießen. - Muss ich wohl nochmal darüber nachdenken.
          Ja, solltest du! Auch ein "interner User" kann durchaus auf die Idee kommen in seine Daten ein einfaches Hochkomma ', einen Zeilenumbruch oder eben einen Backslash einzutragen und da sollte der String besser maskiert werden...

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X