Announcement

Collapse
No announcement yet.

MySQL Text-Speicherungsproblem

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

  • MySQL Text-Speicherungsproblem

    Hallo!

    Schmeiße nach vier Stunden das Handtuch und wende mich an euch.

    Ich möchte gerne eine RIPE Whoise-Abfrage in MySQL speichern.

    Das will nicht hinhauen. Wenn ich das, was RIPE zurückgibt manuell über PHPAdmin speichere, funktioniert es.

    Ich lese die Anfrage mit fsockopen ein.

    Das Array wandle ich mit implode in einen String um. Alles funktioniert.

    Habe auch schon den String als nl2br formatiert.

    Die SQL-Anweisung sieht so aus und funktioniert auch, wenn ich in das Feld des Whois-Ergebnisses etwas anderes reinschreibe. Beispiel: 'xxx'

    PHP Code:
    mysql_query("INSERT INTO `Ripe` ( `RipID` , `KundenNr` , `timest` , `IPAr` , `Ripe` )
    VALUES (
    '', '8', '888', '888', '
    $Whoistext'
    )"
    ); 
    Ich erhalte mit echo mysql_error() folgenden Hinweis:

    You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '89.54.96.0 - 89.54.111.255' | |inetnum: 89.54.96.0 - 89.54.111.255 |netna' at line 11

    In Line 11 der Whoisabfrage steht:

    "inetnum: 89.54.96.0 - 89.54.111.255"

    Wie kann man den String so formatieren, dass MySQL ihn ohne Mucken speichert?

    Zeile im Table:
    Ripe text latin1_german1_ci Ja NULL


    Gruß

    Thor

  • #2
    Nimm parametrisierte Abfragen oder Quote deine Strings vernünftig.
    Da ich nicht PHP kann müste jemand anderes ein Beispiel liefern. Evtl. mal Forensuche bemühen.

    Comment


    • #3
      Hallo Bernhard!

      Es geht eigentlich nur darum, dass ich diesen Text nicht in MySQL abgespeichert bekomme:

      Next Section

      Query the RIPE Database
      Search for
      Switch to the RIPE TEST Database

      % This is the RIPE Whois query server #3.
      % The objects are in RPSL format.
      %
      % Rights restricted by copyright.
      % See http://www.ripe.net/db/copyright.html

      % Note: This output has been filtered.
      % To receive output for a database update, use the "-B" flag.

      % Information related to '89.54.96.0 - 89.54.111.255'

      inetnum: 89.54.96.0 - 89.54.111.255 // Hier schein es zu haken!!
      netname: STRATO-POOL-NET
      descr: STRATO Medien AG


      Gruß

      Thor

      Comment


      • #4
        Originally posted by Thor68 View Post
        Es geht eigentlich nur darum, dass ich diesen Text nicht in MySQL abgespeichert bekomme:
        Genau. Irgendeine der im String vorkommenden Zeichen wird von MySQL als Steuerzeichen interpretiert (evtl ":"). Und diese müssen escapet werden oder am besten um sowas aus dem weg zu gehen verwendest du parameter.

        Comment


        • #5
          Danke für den Hinweis, Bernhard!

          Was sind das für Parameter? Wie wendet man sie an?

          Comment


          • #6
            Wikipedia ist dein Freund

            Comment


            • #7
              Die PHP-Funktion ist mysql_real_escape_string()

              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