MySQL - Datensätze gehen verloren



  • Hi!

    Folgende Situation:

    Ich hab zwei Tabellen, die ich zusammen legen will.
    Dazu kopiere ich den Inhalt der Tabellen in eine neue und modifiziere noch einige andere Tabellen, weil es ja zB neue IDs gibt.

    Grob gesagt sieht das so aus

    $abfrage = "SELECT * FROM news ORDER by news_id";
    $resID = mysql_query($abfrage);
    
    while($news = mysql_fetch_array($resID,MYSQL_BOTH))
    {
    $abfrage2 = "INSERT INTO bfg_news (`titel`,`autor`,`zeitpunkt`,`text`,`gelesen`,`mod`,`kategorie`,`game_id`) VALUES('$news[titel]','$news[autor]','$news[zeitpunkt]','$news[text]','$news[gelesen]','$news[mod]','$news[kategorie]','1')";
    	if(mysql_query($abfrage2))
    		echo "News $news[titel] erfolgreich kopiert<br>"; 
    /*
    modifikationen
    */
    }
    

    Das ist ja alles kein Problem. In der "news" Tabelle sind 2117 Einträge.
    Lass ich ein Zähle mitlaufen durchläuft er die While-Schleife auch 2117mal, aber in der neuen Tabelle sind immer nur knapp 1770 Einträge.
    Wieso kopiert er nicht alle Einträge?
    In der alten gibt es keinen Eintrag wo ein leeres Feld vorhanden ist und sonst keine Besonderheiten.



  • Ok. Wir haben gerade entdeckt das in den "verloren gegangenen" Einträgen das Zeichen ' vorkommt. Das dürfte der Fehler sein, aber wie kann man das umgehen.


  • Mod

    mysql_escape/mysql_real_escape

    kleiner tipp:
    jede funktion auf fehler testen! dann wäre dir das sofort aufgefallen.



  • Thx, hat geholfen.


Anmelden zum Antworten