Serverumzug - Seiten teilweise nicht aufrufbar mit verschienen MYSQL Fehlermeldungen

  • Hallo zusammen,

    Ich habe meine Seite perseus24.com auf einen neuen Server umgezogen. Vieles läuft, einiges nicht, bekomme verschiedene Fehlermeldungen und weiß nicht, was tun. Kann mir jemand helfen?


    1. Fehlermeldung bei Aufruf der Buchungsmaske: https://www.perseus24.com/pers…3ndiu1l2&parm=7g4547c1b02

    MYSQL Fehler: Unknown column 'customers_id' in 'field list'

    insert into
    2344_buchungen

    (id,global_id,sid,db_prefix,sid_alter,user_path,hotelname,booking_source,
    p_conditions,customers_id,reisender,bemerkung,debit)
    values

    ('92','168184H92acc2344','06fc8f5589e87cbd891750e309b8dfcf','2344','1535461201','../cms/users/2344/','HAPPYbeach lounge','7g4547c1b02','0','-1','','','')
    Table 'csnetworksql39._buchungen' doesn't exist


    liebe Grüsse Kurt


  • Nö, hatte zwar zuerst das Problem `Access denied` ist aber gelöst. Ich befürchte, dass irgendwas mit dem Dump nicht passt, oder die PHP Version auf dem neuen Server vielleicht zu neu ist. 5.3 Das Programm ist jetzt über 12 Jahre alt und solange hatte ich auch den alten Server, wo es einwandfrei läuft. Die Tabellen sind alle drin.

  • In einer anderen Fehlermeldung im cms des Programms steht das hier:


    Fehler in sql->_select:select conditions from top_conditions where top_id = and hotel_id =286

    You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'and hotel_id =286' at line 1Fehler in sql->_select:select conditions from top_conditions where top_id = and hotel_id =286


    Die Daten werden aber darunter alle angezeigt.



  • Ui... stark veraltet, das hätte ich bei einem Umzug ja gleich mit bedacht. Probleme gibt es ja so oder so, wie man sieht.


    Um You have an error in your SQL syntax; anzusprechen, was fällt Dir denn hier auf?

    select conditions from top_conditions where top_id = and hotel_id =286, wie in der Meldung schon steht, liegt der Fehler near 'and hotel_id =286'. Als Tipp, near heißt in dem Fall links davon.

  • Ui... stark veraltet, das hätte ich bei einem Umzug ja gleich mit bedacht. Probleme gibt es ja so oder so, wie man sieht.


    Um You have an error in your SQL syntax; anzusprechen, was fällt Dir denn hier auf?

    select conditions from top_conditions where top_id = and hotel_id =286, wie in der Meldung schon steht, liegt der Fehler near 'and hotel_id =286'. Als Tipp, near heißt in dem Fall links davon.

    Schon, das weiß ich, aber was muß ich tun?

  • Naja, wenn Du weißt, dass die Query fehlerhaft ist, ist doch wohl klar, was zu tun ist: Die Fehlerursache finden und fixen!

    Siehst Du denn bereits, welcher Fehler sich darin befindet?

    Nein, nicht wirklich. Muß ich den Dump editieren und darin was umschreiben? Wenn ja, was? Bin kein Profi, habe das Programm nicht selbst geschrieben, kenn mich nur ein wenig damit aus. Auf dem alten Server läuft es einwandfrei.

  • Das Programm läuft aber auf dem alten Server einwandfrei

    Na und? Das Problem wird an der Stelle liegen, wo die Query zusammengebastelt wird. Die entsprechende Variable, die den Wert für top_id enthalten soll, kann ja bspw. auf einer Funktion/Methode basieren, die auf der neuen Umgebung fehlschlägt.

    Das hat dann am Ende nichts mit MySQL zu tun, weil die Query bis dahin noch gar nicht zum Einsatz kam.


    Ok, das Problem scheint an der MYSQL Version zu liegen. Auf dem alten Server läuft Debian 6 MYsql 5.1 oder 5.0 und auf dem neuen Debian 9 Mysql 5.5

    Dann kannst Du genau so gut annehmen, dass es an der Debian Version liegt. Das ist Nonsens, Du musst dort ansetzen, wo die Query gebastelt wird.

    Mit der MySQL-Version hat das schon mal genau NULL zu tun, denn select conditions from top_conditions where top_id = and hotel_id =286 wird jede Version von MySQL anmeckern, weil es einfach falsch ist!

  • Was verstehst Du daran nicht?!


    Vergiss mal MySQL und nimm einfach mal an, dass die Query ähnlich wie so aufgebaut wird:

    PHP
    1. $iTopId = foobar( $argument );
    2. $sQuery = "select conditions from top_conditions where top_id=" . $iTopId . " and hotel_id=286";

    Was passiert da?

    Eine Funktion - hier beispielhaft foobar benannt - führt Berechnungen aus und liefert eine ID zurück, die in $iTopId abgelegt wird.


    Und was hat das mit dem Problem zu tun?

    Nimm nun einfach mal an, dass foobar() oder eine darin ausgeführte Funktion/Methode zur Berechnung der ID auf dem neuen System nicht mehr unterstützt wird oder ein anderes Verhalten an den Tag legt, warum auch immer. Dann kann es durchaus vorkommen, dass null oder false als Rückgabe kommen. Dann wäre das bspw. schon eine Erklärung dafür, dass in $sQuery nichts an Stelle der $iTopId angezeigt wird und somit eine fehlerhafte Query entsteht.


    Fazit

    Auch wenn ich das verwendete Script in Frage stelle, allein dass an der Stelle überhaupt keine Fehlerprüfung zu sein scheint, ist das der Ansatz, den Du verfolgen musst.


    Das ganze hier ist natürlich nur theoretisch und grob spekulativ, weil ich nicht weiß, wie und wo die Query tatsächlich aufgebaut wird. Aber das schaust Du ja auch nicht nach, weil Dir die Zeit dazu fehlt, neben dem ständigen in Frage stellen unserer Antworten hier.


    Auf jeden Fall sehe ich den Fehler ziemlich eindeutig beim Erstellen des Query-Strings. Was genau kann ich ohne entsprechenden Code nicht sagen bzw. eingrenzen.

  • Wo schau ich denn nach? im phpMyAdmin oder in der .php Datei ? Ich frag, weil ich dachte, ich dürfe hier Fragen stellen und weil ich wenig Ahnung habe und das Problem lösen muss. Das hat nichts damit zu tun, dass ich keine Zeit habe. Bin aber sehr dankbar für Deine Antworten, auch wenn ich noch nicht viel schlauer geworden bin.

  • Du musst mal die Antworten komplett und richtig lesen:


    Zitat

    Auf jeden Fall sehe ich den Fehler ziemlich eindeutig beim Erstellen des Query-Strings. Was genau kann ich ohne entsprechenden Code nicht sagen bzw. eingrenzen.

    Daraus kann man doch schließen, dass du uns mal deinen Quellcode zeigst, oder?

  • Wo schau ich denn nach? im phpMyAdmin oder in der .php Datei ?

    In der entsprechenden .php Datei.


    Ich frag, weil ich dachte, ich dürfe hier Fragen stellen und weil ich wenig Ahnung habe und das Problem lösen muss.

    Klar, das ist nicht das Problem. Ich habe Dich aber schon mehrfach darauf hingewiesen, dass es nichts mit dem MySQL-Server oder dessen Version zu tun hat. Trotzdem versucht Du dort aber immer wieder die Begründung für das Problem zu suchen.


    Deshalb nochmal: Vergiss für Dein Problem, dass Du MySQL einsetzt geschweige denn kennst. Die Ursache liegt nach meiner Einschätzung zu 99% irgendwo in den PHP Scripten.