Problem mit sonderzeichen in DB eintragen

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

  • 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());
        
        
        }
    }
    ?>
    Last edited by funnyzocker; 10-03-2005, 20: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

    Comment


    • #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!

      Comment


      • #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.
        Last edited by wahsaga; 10-03-2005, 21:04.
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Comment

        Working...
        X