• 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.

[PHP] mysql durch mysqli ersetzten Workaround

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Hallo Leute,

eben habe ich auf einer Seite meiner Projekte die Information bekommen, dass in geraumer Zeit mysql und dessen Funktionen aus PHP entfernt werden.
Nun habe ich allerdings einige Projekte mit zusammen über 100.000 Zeilen Code, in denen auch SEHR VIEL mysql -Funktionen (statisch) genutzt werden.

Nun wird ja darauf hingewiesen, dass man lieber mysqli oder PDO nutzen sollte, wobei ich dann eher zu mysqli tendiere.

Und jetzt meine eigentliche Frage:

Gibt es ein Workaround, welches die alten mysql-Funktionen so umgestaltet, dass diese mit mysqli laufen, ohne dass man wirklich jede Abfrage und Co. anpassen muss?

Ich würde gerne meinen bisherigen Code bestehen lassen und vielleicht irgendwie die bestehenden mysql-Funktionen (mysql_select und Co.) überschreiben, sodass diese alle Daten mittels mysqli abfragen.

Gibt es da bereits irgendwo etwas oder kann mir jemand bei der Programmierung helfen?


Ich habe immer peinlich genau darauf geachtet, dass ich mysql-Injections verhindere und nun soll einem das ja abgenommen werden und die einfachen Funktionen fallen weg -.-*

Ich hatte mir sowas in der Richtung vorgestellt
[src=php]//Pseudocode
function mysql_query($query) {
$teilabfrage = splitteQueryInAbfrageUndNutzereingaben($query);
mysqli - Prepared Statement gedöns

return mysqli-Daten als Ressource verarbeitet.

}[/src]
 

alter_Bekannter

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

Registriert
14 Juli 2013
Beiträge
4.833
Ort
Midgard
Entweder alles umstellen oder einfach bei der letzten Stable bleiben wo noch mysql ohne "i" unterstützt wird.

Wobei ich prepared Statements jetzt nicht so tragisch fand von der Einarbeitung, ~3 Stunden da war der Fall gehalten. Ist ja auch alles in allem sehr sinnvoll.

Generell:
Was hast du für seltsamen Code das eine Umstellung so tragisch wäre?
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #3
@alter_Bekannter:
Bei der letzten stable bleiben klappt leider nicht, da viele meiner Projekte auf Webspace liegt, der nicht auf eigenen Servern läuft und somit vom Hoster umgestellt wird.

Die Einarbeitung ist nicht das Problem. Das Problem ist nur, dass ich WAHNSINNIG viele mysql_-Funktionen verwendet habe und das entsprechende Umschreiben mehr als ein paar Stunden dauern würde. Das würde mehrere Wochen dauern, bis ich jeden einzelnen Aufruf angepasst hätte... Die Projekte wollte ich aber nicht mehr weiterentwickeln (bei neuen verwende ich bereits mysqli), dennoch laufen die einfach so weiter. Ein Beispiel ist eine Stundenerfassung (Zeiterfassung, wann welcher Mitarbeiter auf welcher Baustelle war) für eine kleine Zimmerei.
Die Abfragen werden derzeit noch ziemlich kompliziert zusammengesetzt und das alles umzuschreiben ist doch ziemlich aufwendig...
 

alter_Bekannter

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

Registriert
14 Juli 2013
Beiträge
4.833
Ort
Midgard
Hoster anschreiben?

Also früher haben selbst freehoster ewig PHP4 unterstützt.
Falls deiner das nicht macht solltest du vielleicht einen Wechsel in Erwägung ziehen.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.769
Ort
in der Zukunft
Eigentlich reicht es im ganzen Code [src=php]mysql_[/src] durch [src=php]mysqli_[/src]zu ersetzen und [src=php]("SELECT[/src]... zu[src=php] ($Link, "SELECT[/src]... usw. für INSERT, DELETE zu ersetzen. Wobei $Link Der DB-Handler zur Datenbankverbindung ist den du bei mysqli_connect() zurück bekommst
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #6
@drfuture:
Das muss ich mal die Tage ausprobieren... Habe ich bisher nie drauf geachtet...

@alter_Bekannter:
Die Hosterwahl liegt nicht immer in meiner Wahl, da halt auch viele Scripte von mir von einigen Kunden verwendet werden, die meine Scripte lediglich in eine bestehende Webseite integrieren.
 

tool

Neu angemeldet

Registriert
7 Aug. 2015
Beiträge
14
Es wurde ja bereits angesprochen, dass du einfach mysqli_query statt mysql_query nutzen kannst. Es sei an dieser Stelle aber angemerkt, dass du in dem Moment selbstverständlich keine Prepared Statements nutzt. Eine Maskierung mit mysqli_escape_string und intval bietet in den meisten Fällen Abhilfe, kann aber bei falscher Anwendung zu weiteren Sicherheitslücken führen (bspw. Zeichensatzprobleme, Stringverarbeitung nach Maskierung, mysqli_escape_string für Integer, ...). Aber das nur als Anmerkung am Rande. Wie gesagt: Um den Code umzustellen, reicht es, das mysqli-Äquivalent von mysql zu nutzen, was sich in den meisten Fällen durch stupides Ersetzen in allen Dokumenten ändern lässt.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Für mich sieht es ein wenig danach aus, als sei deine Abstraktion zum Storage nicht hinreichend. Wenn du tatsächlich an diversen Stellen den Code umarbeiten musst, dann ist dein Code nicht sonderlich gut geschrieben. Je nach Größe und Anzahl der Projekte, solltest du dich ggf. darauf einstellen, neuere Versionen zu entwickeln.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #10
@accC:
Ich hatte mir bei einigen Projekten überlegt, eine eigene Klasse zu schreiben, in der dann alle Funktionen enthalten sind, die dann die entsprechenden Daten eintragen/abrufen, allerdings hatte ich das erst gegen Ende in Betracht gezogen und noch nicht umgesetzt...

Werde ich bei meinen kommenden Projekten auf jedenfall immer machen.
 

accC

gesperrt

Registriert
14 Juli 2013
Beiträge
5.250
Wie 'alt' sind denn deine älteren Projekte eigentlich?
Außer mysql / mysqli hat sich unter PHP in den letzten Jahren ja doch einiges getan.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #12
Wie 'alt' sind denn deine älteren Projekte eigentlich?
Einige sind 5+ Jahre alt, andere nur 2.
Ich habe allerdings bei den wichtigeren Änderungen Anpassungen vorgenommen, die allerdings meistens nicht sonderlich gravierend waren, da viele meiner Projekte mit einfachen Standardfunktionen auskommen. Lediglich die Datenbank-Arbeit ist etwas komplexer...
 
Oben