MySQL Datenbankabfrage von php5 auf php7 ändern

  • Hallo,


    ich habe vor einiger Zeit die Betreuung unserer Vereinswebsite übernommen.

    Der Server war ausgefallen und der Webmaster ist mit der Website auf einen anderen Server umgezogen.

    Er bekam die Seite nicht mehr zum laufen und hat dann die Betreuung aufgegeben.


    Nun stehe ich vor dem Problem bestimmte Funktionen wieder zum Laufen zu kriegen.

    Main Hauptproblem ist, dass es eine Suchabfrage für eine Datenbank gab, die dringend wieder hergestellt werden muss.

    Die Suchanfrage erfolgte mittels php. Auf dem alten Server funktionierte diese Version (vermutlich php 5.x).

    Auf dem neuen Server bleibt die Seite leer.


    Ich beschäftige mich genau seit 10 Stunden mit php und bin nun mit meinem Latein am Ende.


    Also - ich habe inzwischen begriffen, dass php auf dem Server installiert sein muss.

    Das ist beim neuen Vereinsserver nicht der Fall und eine Datenbank kann ich dort auch nicht einrichten.

    Darum habe ich diese Projekt auf den Server meiner Homepage geholt.

    Da wird php 7 unterstützt. Und die Datenbank habe ich inzwischen auch mit den Daten gefüllt.
    Das Ergebnis der Suchanfrage sind aber nur massive Fehlermeldungen (syntax error).


    Ich möchte einfach nur aus der Datenbank au drei verschiedenen Tabellen Literaturdaten abrufen und als Ergebnis anzeigen.


    Der folgende Quellcode steht aktuell auf der Seite. Die Verbindung zur Datenbank habe ich bereits korrigiert und das klappt.

    Kann mir jemand helfen einen funktionierenden Code für Abfrage und Ausgabe zusammenzustellen?


    Vielen Dank,

    Maike

  • Maike1976

    Editiere deinen Post. Du hast die Zugangsdaten geposted!

    $db = @mysql_connect("***"; "***"; "***") or die(mysql_ERROR());


    Das Passwort ist jetzt Müll. Das war öffenlich im Netz. Auf jeden Fall ändern.



    EDIT;

    Zum syntax error:

    Code
    1. $db = @mysql_connect(
    2. "**"; // <-- "**"; // <-- "**") or die(mysql_ERROR());

    Semikolon gehört dort nicht hin, sondern Komma

    Code
    1. $db = @mysql_connect(
    2. "**",
    3. "**",
    4. "**")
    5. or die(mysql_ERROR());

    Wenn Du bei Dir jetzt PHP 7 am laufen hast, wirst Du auf die Schnelle nicht weiterkommen.

    In PHP7 gibt es (wenn ich mich richtig erinnere) keine mysql_ funtions mehr. (nicht mehr unterstützt/zu alt).

    Könntest mit PHP 5.6 testen. Solltest dann aber mysql_ auf mysqli_ oder PDO umstellen.

    mysqli_ http://php.net/manual/de/mysqli.examples-basic.php

    PDO http://php.net/manual/de/pdo.connections.php

  • Vielen Dank für die Antwort.


    Die Version ist PHP Version 7.0.24.

    Das der Code veraltet ist, weis ich. Ich kenne aber weder die Funktion der Befehle, noch kenne ich die Synthax oder kann beurteilen welche der zahlreichen Zeilen veralteten oder fehlerhaften Code enthalten.


    Maike

  • Danke für die Hinweise. Die Zugangsdaten wollte ich gar nicht mir reinkopieren.

    Für den Server-Zugang habe ich PDO genommen.

    Das sollte ich dann wohl auch für den Rest verwenden.

    Danke für die Links.

    Ich werde mal mein Glück mit dieser Beschreibung versuchen. https://www.php-einfach.de/mysql-tutorial/crashkurs-pdo/


    Maike

  • Noch ein Hinweis zur PDO:

    Man kann 2 verschiedene Arten Platzhalter verwenden (wie im Artikel beschrieben, den Du geposted hast).

    Entweder mit ? (Fragezeichen,) oder per :namen.

    Gewöhne Dir am besten gleich die :platzhalter_mit_benennung an.


    Den Fragezeichensalat like VALUES(?, ?, ?) oder WHERE foo = ? AND bar = ? AND baz = ?

    würde ich mir an Deiner Stelle nicht antun :)


  • Naja, ist Geschmacksfrage. Ich würde mir das bind-Gedöns nur ungern antun ;)

  • Ganz ehrlich: Wer nutzt denn bitte auch die bind*-Methoden? :D


    Ich denke, so ziemlich jeder nutzt einfach execute() mit den Parametern bzw. Werten. Alles andere ist doch höchst umständlich.


    Bei den Platzhaltern bin ich dann auch ganz klar bei den Namen.

    Habe die Fragezeichen, glaube ich, noch nie wirklich genutzt. Außer natürlich einmal, als ich mir das zum ersten Mal angeguckt habe. Dann probiert man schließlich alles einmal aus.