-=Son-Gunni=-: MySQL und postgreSQL

Moin Leutz...

Habe mal wieder ein Problem:

Ich habe soeben den Auftrag bekommen, ein komplettes PHP-Script, bestehend aus verschiedenen PHP-Files im PHP2 (ist halt schon älter) mit einer postgreSQL - Datenbank umzuschreiben. Ergebnis soll das gleiche Script in PHP4 sein. Keion Problem, ist schon geschehen. Das größere Problem ist aber, das von jetzt an nicht mehr die postgreSQL- Datenbank, sondern eine MySQL - Datenbank genutzt wird. Im Prinzip auch kein Problem, ABER:

Welchen Befehl nehme ich bei MySQL anstelle des pg_exec() ??? Habe nix dazu gefunden.

Auch ein Problem ist, dass im Script eine Funktion namens user_error vorkommt, die der Apache nicht redeklarieren kann, kein Plan warum...

Ich hoffe, mir kann irgendwie geholfen werden (wovon ich in diesem genialen Forum ausgehe).

Thx, -=Son-Gunni=-

P.S.: Meinen Dank und Respekt an all die Cracks, die hier immer wieder gut und ohne zögern anderen weiterhelfen!!!

  1. Hi Son-Gunni (?),

    Welchen Befehl nehme ich bei MySQL anstelle des pg_exec() ???

    pg_exec() scheint etwas aus der Mode gekommen zu sein; wenn ich das richtig sehe, liefert es nach Ausführung der als Parameter übergebenen Query eine Erfolgsmeldung zurück. Mit MySQL könnte das z.B. so aussehen:

    if(!($result = mysql_db_query($db,$sql)))
      {
      echo mysql_error();
      exit;
      }

    Auch ein Problem ist, dass im Script eine Funktion namens user_error vorkommt, die der Apache nicht redeklarieren kann, kein Plan warum...

    Was heißt das?

    HTH Robert

    1. Hi Robert

      Erstmal danke für die Hilfe.

      Auch ein Problem ist, dass im Script eine Funktion namens user_error vorkommt, die der Apache nicht redeklarieren kann, kein Plan warum...

      Was heißt das?

      Wenn ich wüsste, was das heißt, wäre ich wahrscheinlich ein weiser Mann :-)
      Die Fehlermeldung lautet:
      Cannot redeclare user_error() in line .....
      Wenn ich die Funktion umbenenne, z.B. in user_erro , gibt es keine Fehlermeldung. Ich weiß aber nicht, inwiefern und wo diese Funktion sonst noch gebraucht wird. HAbe das Programm nicht geschrieben und daher auch keinen Überblick...

      Bis denne,
      -=Son-Gunni=-

      1. Hallo Son-Gunni,

        Die Fehlermeldung lautet:
        Cannot redeclare user_error() in line .....

        Nie gehabt!

        Wenn ich die Funktion umbenenne, z.B. in user_erro ,

        Wie kommst Du auf die Idee, sie so umzubenennen? Interessante Technik!

        gibt es keine Fehlermeldung. Ich weiß aber nicht, inwiefern und wo diese Funktion sonst noch gebraucht wird. HAbe das Programm nicht geschrieben und daher auch keinen Überblick...

        Scheint eine Funktion zur Fehlerbehandlung zu sein und ist ein Alias für trigger_error(). Das Rauswerfen der Funktion mit dem Ziel, die Fehlermeldung zu vermeiden, ist sicher kein brauchbarer Ansatz - eher nachvollziehen, was der Entwickler sich dabei dachte. Vielleicht fängst Du hier http://www.php.net/manual/en/function.trigger-error.php mal an zu suchen...

        HTH Robert

      2. Hallo Son-Gunni,

        Was heißt das?

        Wenn ich wüsste, was das heißt, wäre ich wahrscheinlich ein weiser Mann :-)
        Die Fehlermeldung lautet:
        Cannot redeclare user_error() in line .....
        Wenn ich die Funktion umbenenne, z.B. in user_erro , gibt es keine Fehlermeldung. Ich weiß aber nicht, inwiefern und wo diese Funktion sonst noch gebraucht wird. HAbe das Programm nicht geschrieben und daher auch keinen Überblick...

        Der "Cannot redeclare" kommt von PHP, heißt, daß man eine Funktion gleichen Namens zweimal deklariert hat, und tritt normalerweise auf, wenn Du Funktionsbibliotheken zweimal includest, also in Datei A "include $foo; include $bar;" stehen hast, und in $bar nochmal $foo includest, und in $foo wird eine Funktion definiert. Wenn es bei Dir so wäre, sollte umbenennen nix helfen, da es aber anscheinend hilft, hast Dein Vorgänger wohl zwei verschiedene Funktionen "user_error" irgendwo hingeschrieben, die jetzt bei der Ausführung in einem Skript stehen. Wenn Du eine davon umbenennst, ist das Problem dann natürlich weg.

        Viele Grüße
        Stephan