Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

mysqli_query anfragen werden nicht verarbeitet

Dieses Thema im Forum "MySQL und MariaDB" wurde erstellt von Doedelpumpe, 2 Dezember 2020.

  1. Doedelpumpe

    Doedelpumpe Neuer Benutzer

    Hey Leute,

    ich schreibe gerade an einem PHP-Skript /-Website mit dem ein Ordner auf dem Server samt Unterordner nach Musik durchsucht wird. Dabei untersucht das Skript die Dateien auf Tags (mit getid3). Alle gefundenen Musikdateien möchte ich daraufhin in einer Song-SQL-Datenbank auflisten.
    Also: Datei gefunden -> Tags auslesen -> mysqli_query(conn, "INSERT ...;") -> nach nächster Datei gucken.

    Dabei habe ich jetzt verschiedene Probleme.
    1.) Zu lange Pfadnamen?
    Ich hatte einen Ordner mit einem langen Namen und darin wurde nur eine (die erste) Datei in die SQL-Datenbank eingelesen. Alle anderen Dateien haben auch den Query gesendet (zumindest kann ich mir den Query-Text direkt vor dem absenden an SQL korrekt ausgeben lassen) aber MySQL hat es aus irgendeinem Grund nicht verarbeitet. Ich habe schon versucht das max_allowed_packet zu erhöhen aber das zeigte auch keinen Erfolg. Und ich bin mir auch nicht sicher ob es daran liegen kann, da die erste Datei im Ordner in die Datenbank eingelesn wird. Ich frage mich ob es eine Art SpamSchutz von MySQL gibt der zu viele Anfragen auf einmal abblockt o.ä.? Oder woran könnte das liegen?

    2.) Dateinamen mit einem Apostroph?
    Als ich dem zuvor beschriebenen Ordner einen kürzeren Namen gab (Test), wurden fast alle Dateien in die SQL-Datenbank eingelesen. Nur 2 von 100 Dateien widersetzten sich. Mir fiel auf, dass beide Dateien ein Apostroph im Künstler oder Titel haben. Dies könnte natürlich bei einem Befehl, der mit Apostrophen gesäht ist zu Problemen führen? Leider kann man sich aber nicht immer aussuchen wie Künstler oder Lieder heißen. Was kann ich dagegen tun? Muss ich die Problemfelder umbennen bevor ich sie an sql weitergebe?

    Ich habe das jeweils lokal getestet. Einmal auf einem RaspberryPi3B mit Raspbian und einmal auf einem WindowsRechner mit XAMPP. Letztlich soll das Projekt auf dem RaspberryPi laufen und ohne Monitor auskommen. Daher wäre eine Umsetzung mit PHP wünschenswert, da für das Projekt eine Homepage unabdingbar ist ^^

    Ich hoffe ihr könnt mir weiterhelfen. Wenn ich irgendwelche essentiellen Informationen unterschlagen habe, sprecht mich gerne darauf an.
     
  2. akretschmer

    akretschmer Datenbank-Guru

    google nach quoting. Ansonsten bist Du mit Deinem PHP-Problem hier schlicht falsch.
     
  3. Doedelpumpe

    Doedelpumpe Neuer Benutzer

    Hey akretschmer,
    danke für die schnelle Antwort :)
    Stimmt, das Apostroph ist wohl ein PHP-Problem aber das erste Problem würdest du auch auf PHP schieben?
    zu Fehler 1)
    Ich habe jetzt in meiner SQL-Tabelle der Spalte "Pfad" der Musikdatei das "UNIQUE" entnommen. Nun funktioniert das einlesen der Dateien auch mit dem langen Ordnernamen. Habe versucht über UNIQUE irgendetwas in Erfahrung zu bringen, was dagegen spricht. Ich meine ich habe eh eine Prüfung ob Künstler+Titel schon existiert bevor ich etwas der Datenbank hinzufüge, aber trotzdem würde mich jetzt interessieren was in SQL schiefgegangen ist mit der Eigenschaft "UNIQUE". Vergleicht SQL nur eine gewisse länge des strings und bricht irgendwann den Vergleich ab und sagt, dass es sich um den gleichen Eintrag handelt?
    Weitere Erkenntnis als ich es wieder UNIQUE machen wollte um es nochmals zu testen, dass er TEXT-Spalten nicht unique machen will, da sie keine beschränkte Länge hat. D.h. unique ist eigt nur für varchar(XX) gedacht?
     
  4. akretschmer

    akretschmer Datenbank-Guru

    Sorry, nach 3-maligem Lesen hab ich jetzt ein Schleudertrauma.
     
  5. Doedelpumpe

    Doedelpumpe Neuer Benutzer

Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden