• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Problem beim Bilderupload in SQL Tabelle

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.332
Ort
Topkekistan
Habe gerade ein seltsames Problem mit einer Tabelle in die ich Bilder laden möchte. Die Tabelle sieht folgendermaßen aus:

img_sql_1.png


Wenn ich dann Bilder hoch lade klappt das auch:


111.png

INSERT INTO `******`.`*****_images` (`id`, `cp_id`, `pic_no`, `imgdata`, `imgdata_thumb`, `imgtype`) VALUES (NULL, '2274', '1', UNHEX(0xffd8ffe000104a46494600010200006400640000ffec00114475636b79000100040000003c000[....]

Doch es kommt irgendwie nichts an :confused:

img_sql_3.png


Wiederhole ich den Schritt dann aber, also bei dem Datensatz den er ja angelegt hat auf "bearbeiten", Bilder auswählen und noch mal hoch laden, sind die Bilder auf ein mal in der DB und auch verfügbar.

Was könnte da den los sein?
 

tool

Neu angemeldet

Registriert
7 Aug. 2015
Beiträge
14
unhex erwartet einen String als Parameter, d.h. der entsprechende Part sollte bei deiner Abfrage so aussehen:
VALUES (NULL, '2274', '1', UNHEX('ffd8ffe000104a46494600010200006400640000ffec00114475636b79000100040000003c000[....]
 

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.332
Ort
Topkekistan
  • Thread Starter Thread Starter
  • #3
Oha, ok :confused: Was hab ich denn dann falsch gemacht? Ich wähle die Datei ja (noch) über phpMyAdmin und "durchsuchen..." :unknown:
 

tool

Neu angemeldet

Registriert
7 Aug. 2015
Beiträge
14
Edit: Etwas ausführlicher...

unhex erwartet als Eingabe einen String, was du lieferst ist (erst einmal) eine Zahl. Ich bin mir nicht sicher, an welchen Stellen MySQL automatisch castet und an welchen nicht, aber hier scheint das Ergebnis von unhex null zu sein, weswegen ich zunächst probieren würde, wirklich einen String zu nutzen, d.h. der Aufruf von unhex sollte etwa so aussehen:
Code:
unhex('ffaa...')

Ich habe das kurz selbst getestet:
insert into bla (fa) values (unhex(0x41)), (unhex('41'))

Ausgabe:
select hex(fa) from bla
0A
41

Irgendwas stimmt also mit der Typkonvertierung nicht, wenn man jedoch unhex('...') nutzt, wird alles korrekt eingetragen.
 
Zuletzt bearbeitet:

eraser

Stinkstiefel

Registriert
21 Juli 2013
Beiträge
3.775
Ich rate davon ab Bilder in der Datenbank zu speichern, auch wenn das nicht die Frage war. Es ist wesentlich langsamer, der Browser hat Schmerzen beim Zwischenspeichern der Daten und Backups werden auch erschwert.
 

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.833
Ort
Midgard
Warum werden Backups erschwert, werden die dadurch nicht eher schneller weil sie in der Datenbank eine Große Datei statt vieler kleiner sind?
 

eraser

Stinkstiefel

Registriert
21 Juli 2013
Beiträge
3.775
Wegen der inkrementellen Datensicherung, die nicht ohne weiteres möglich ist.
 

alter_Bekannter

N.A.C.J.A.C.

Registriert
14 Juli 2013
Beiträge
4.833
Ort
Midgard
Das klingt jetzt für mich noch seltsamer, gerade Änderungen kann man doch da viel leichter feststellen, halt nicht mehr auf Filesystemebene...

Gerade in godlikes Beispielstruktur mit ID's weiss man doch da genau wo man dran ist.
Übersehe ich da irgendein massives Skalierungsproblem von SQL oder bist du nur etwas zu sehr auf eine spezielle Methode der Datensicherung fixiert?

Ich muss zugeben das meine Erfahrungen mit Datenbanken Jenseits der 8 stelligen Eintragszahlen quasi nicht vorhanden sind aber bis dahin sind alle selects mit weniger als einer 6 stelligen Ergebniszahl noch sehr schnell.
 

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.332
Ort
Topkekistan
  • Thread Starter Thread Starter
  • #9
Gibt es denn eine adäquate Lösung bei der ich die Bilder automatisiert als File auf dem Webspace ablege? Ich meine was ist mit Änderungen? Wenn ich jetzt Datensätze lösche oder neue hinzufüge (gibt noch nicht für alles ein Backend) muss ich die Bilder ja manuell benennen und hochladen. Automatisiert geht das ja wieder nur per Backend...

Nachtrag @tool:

Ich verstehe schon was du mir sagen möchtest hab aber Schwierigkeiten in der Anwendung. Ich lade wie gesagt ja "normal" über phpMyAdmin hoch, da kann ich ja nur auswählen und hochladen:

2345.jpg


Ich hab hier ja also keinen Query den ich beeinflussen kann sondern nur die im Bild sichtbaren Optionen. Vielleicht muss ich mich da einfach noch mehr einlesen in die Materie...

edit: Ok, einfach das Häkchen bei "Null" entfernen und es klappt :D
 
Zuletzt bearbeitet:

tool

Neu angemeldet

Registriert
7 Aug. 2015
Beiträge
14
Ah, okay, ich habe dein Problem wohl missverstanden, ich dachte, du hast die Query selbst geschrieben. Freut mich aber, dass es nun funktioniert!

Zu dem Punkt "Bilder gehören nicht in die Datenbank":
Dem würde ich mich anschließen. Zu den bisher genanten Punkten kommt noch, dass der Datenbankserver ggf. nicht derselbe ist, auf dem auch dein Webspace gehostet wird und Bilder demnach erst einmal vom Datenbankserver zum Webspace geladen werden (da dort ja ein Script ausgeführt wird, dass die Datenbankabfrage ausführt) und erst danach an den Besucher der Seite geliefert wird. Bedeutet: Höhere Latenz, größerer Bandbreitenverbrauch und ggf. wird eine Beschränkung für die Größe der Datenbank schneller erreicht, falls vorhanden.

Zur eleganten Lösung, wie man die Bilder automatisch auf den Webspace legen kann: Auf diesem sollte es ein Upload-Script geben, bei dem du die relevanten Felder eintragen kannst. Das Script empfängt eine Datei vorerst an einem temporären Ort, von dort kannst du sie aber an jeden beliebigen Ort auf dem Webspace kopieren und beliebig benennen (durchnummerieren, Hashes, o.Ä. um Kollisionen zu vermeiden). In der Datenbank wird im entsprechenden Eintrag nur ein Verweis auf die Datei hinterlegt, also bspw. der Dateiname.

Ich muss allerdings zugeben, dass ich die Rahmenbedingungen nicht genau kenne, unter denen du Datenbank und Webspace betreibst und ob davon etwas öffentlich ist oder nur privat,... Was ich beschrieben habe, wäre das Standardvorgehen für normale Homepages, die etwas wie Content-Pflege ermöglichen sollen (denn diese sollte eigentlich nicht über phpMyAdmin stattfinden).
 

eraser

Stinkstiefel

Registriert
21 Juli 2013
Beiträge
3.775
Naja, was bedeutet adäquate Lösung? Alles muss halt erstmal programmiert werden, wenn man es automatisiert möchte. Als einfachste Lösung fällt mir halt sowas wie eine API bei einem Bilderhoster ein (https://www.picflash.org/api.php). Da hast du direkt den Löschlink etc. mit dabei.

Nachtrag: Benutzt du nicht eh eine Blogsoftware? Da müsste es doch passende fertige Addons geben.
 

godlike

Warp drölf
Veteran

Registriert
13 Juli 2013
Beiträge
14.332
Ort
Topkekistan
  • Thread Starter Thread Starter
  • #12
Zu den Rahmenbedingungen. Ich "pflege" hier eine Seite die über noch kein richtiges Backend verfügt. Dabei geht es um ca 10k Datensaätze von denen ~ 300 Bilder enthalten. Da es noch kein Backend gibt, einfach weil mir dazu die Zeit fehlt, lade ich eben ab und an Bilder manuell auf den Webspace (es ändert sich hier nicht viel, betrifft im Jahr ca. 20 Bilder). Das geht noch wesentlich schneller als hier jetzt irgendwelche Uploadfunktionen usw. zu schreiben. Dachte halt ich teste das mal mit ner kleinen DB aber Ok, dann komme ich wohl nicht um ein Backend, zumindest in dem Punkt, drum herum...

Und ja, DB und Webspace sind auf dem selben Server.

Nachtrag: Benutzt du nicht eh eine Blogsoftware? Da müsste es doch passende fertige Addons geben.
Nein, es handelt sich hier um eine von mir geschriebene Seite. Ich hatte nur die Datensätze und eine ziemlich veraltete Vorgängerseite als Basis. Daraus hab ich die Momentane Seite entwickelt. Somit gibt es da keine Addons leider.

Will hier auch keine fremden APIs usw. nutzen da es sich um Kundenspezifische Daten handelt und es auch um relativ viel Geld geht (die zahlen bis zu 2000€ um Bilder angezeigt zu bekommen)

Ok, dann mach ich mir mal um ein Backend Gedanken :coffee:

Danke :T
 
Oben