Problem mit sonderzeichen in DB eintragen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Problem mit sonderzeichen in DB eintragen

    Hallo.
    Ich bastele gerade an einem kleinen Musik Verwaltungsscript für mich.
    Das folgende Script soll die ID3 auslesen.
    Das klappt auch bestens. Leider sind in manchen Titeln PHP sonderzeichen also die ''' . Dort meldet MySql natürlich fehler beim eintragen.
    Kann mann das irgendwie lösen?
    Stehe da im momant arg auf dem Schlauch

    Hier die Funktion
    PHP-Code:
    <?php
    function mp3info($file)
    {
        
    $fp fopen($file"rb");
        if (!
    $fp) return 0;
        
        
    // Try to find ID3v1.x
        
    fseek($fpfilesize($file)-128);
        
    $id3v1 fread($fp128);
        if (
    substr($id3v103) == "TAG")
        { 
    // Yay!
            
    $mp3[title] = trim(substr($id3v1330));
            
    $mp3[artist] = trim(substr($id3v13330));
            
    $mp3[album] = trim(substr($id3v16330));
            
    $mp3[year] = trim(substr($id3v1934));
            if (
    substr($id3v11251) == "\0" && substr($id3v11261) != "\0")
            { 
    // we got a ID3v1.1 here
                
    $mp3[comment] = trim(substr($id3v19729));
                
    $mp3[track] = ord(substr($id3v11261));
            }
            else
            { 
    // old ID3v1
                
    $mp3[comment] = trim(substr($id3v19730));
            }
            
    $mp3[genre] = ord(substr($id3v11271));
        }
        else 
    $mp3 0;

        
    fclose($fp);

        return 
    $mp3;

    ?>
    Hier der aufruf der Funktion und die auswertung
    PHP-Code:
    <?
    include("musikfunction.inc.php"); // angenommen die mp3info() steht in dieser Datei
    include("musik.inc.php");
    $verzeichnis = "/home/ftpserver/musik/";

    $dir = opendir($verzeichnis);
    while($datei = readdir($dir)) {
        if (is_file($verzeichnis.$datei) && (substr($datei, -3, 3) == "mp3"))
        {
            $info = mp3info($verzeichnis.$datei);
            if ($info) echo "Datei: $datei<br>Artist: $info[artist]<br>Title:
     $info[title]<br>Album: $info[album]<br><br>";
        
        $res = mysql_query
        ("INSERT INTO titel (dateiname, titel, artist)
            VALUES 
        ('$datei', '$info[artist]','$info[title]')") or die(mysql_error());
        
        
        }
    }
    ?>
    Zuletzt geändert von funnyzocker; 10.03.2005, 21:27.

  • #2
    1. Sollte es wohl möglich sein, einen Striung umzubrechen, damit man nicht scrollen muss. So sind die Regeln!

    2. mysql_real_escape_string

    Kommentar


    • #3
      Sorry

      Sorry habe nun umbruch eingefügt damit nicht mehr gescrollt werden muss.

      Also ich habe das nun mal probier aber nun trägt er garnix mehr ein in die DB

      Hier mal die Query
      PHP-Code:
          $res sprintf("INSERT INTO titel (dateiname, titel, artist)
       VALUES 
      ('
      $datei', '$info[titel]','$info[artist]')"mysql_real_escape_string($datei),
      mysql_real_escape_string($info[titel]),
      mysql_real_escape_string($info[artist])) or die(mysql_error()); 
      Auch umgebrochen


      Anmerkung bin noch nicht lange bei PHP dabei!

      Kommentar


      • #4
        Re: Sorry

        Original geschrieben von funnyzocker
        Also ich habe das nun mal probier aber nun trägt er garnix mehr ein in die DB
        wenn du mal mysql_error() verwenden würdest, könntest du jetzt auch schon wissen, warum ...

        PHP-Code:
        $res sprintf("INSERT INTO titel (dateiname, titel, artist)
         VALUES 
        ('
        $datei', '$info[titel]','$info[artist]')"mysql_real_escape_string($datei),
        mysql_real_escape_string($info[titel]),
        mysql_real_escape_string($info[artist])) or die(mysql_error()); 
        also, da stehen drei spaltennamen in der ersten klammer - und danach folgen wie viele values ...?
        da kann ja wohl was nicht stimmen, hm?


        an der stelle, wo du $datei, '$info[titel] und $info[artist] momentan stehen hast, kommen natürlich stattdessen die mit mysql_real_escape_string behandelten werte hin.
        Zuletzt geändert von wahsaga; 10.03.2005, 22:04.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar

        Lädt...
        X