Seite 2 von 2

Verfasst: 10.10.2006 20:58
von killerbees19
Hallo, ich bin mir nicht sicher ob ich das selbe Problem habe.
Ich habe ein fertiges Script für den Datenbank Zugriff von www.brain-and-trust.de runter geladen.
Leider meckert PHP immer:
Parse error: syntax error, unexpected ')', expecting '(' in /www/******/cl_db_mysql.php on line 27
Ich habe schon PUPLIC mit VAR und so ausgetauscht, da ich PHP4 verwenden, verstehe aber nicht, was es an dieser Stelle für ein Problem gibt.

Hier mal ein Auszug:
cl_db_mysql.php

Code: Alles auswählen

<?php
class db_mysql
{
/*
PROTECTED $db_user;
PROTECTED $db_pass;
PROTECTED $db_server;
PROTECTED $insert_id;
PROTECTED $affected_rows;
PROTECTED $num_rows;
PROTECTED STATIC $con;
PROTECTED STATIC $queries;
PROTECTED STATIC $verbindungen;
PUBLIC function __construct($datenbank)
*/
VAR $db_user;
VAR $db_pass;
VAR $db_server;
VAR $insert_id;
VAR $affected_rows;
VAR $num_rows;
VAR $con;
VAR $queries;
VAR $verbindungen;
function __construct($datenbank)
{
if(!is_resource(self::$con))
  {
  self::$con = mysql_connect
        ($this->db_server,$this->db_user,$this->db_pass);
  ++self::$verbindungen;
  }
  mysql_select_db($datenbank, self::$con)
  OR die('Fehler beim Verbinden zur Datenbank');
}
In Kommentaren die PHP5 Version.

cl_db.php

Code: Alles auswählen

<?php
class db extends db_mysql
{
/*
PROTECTED $db_user    ='username';
PROTECTED $db_pass    ='kennwort';
PROTECTED $db_server  ='localhost';
PUBLIC function __construct($datenbank = 'PHP_Buch')
*/
VAR $db_user    ='*****';
VAR $db_pass    ='******';
VAR $db_server  ='localhost';
function __construct($datenbank = '*****')
{
parent::__construct($datenbank);
}
}
?>
Vielleicht kann mir jemand helfen.


MfG Christian

Verfasst: 10.10.2006 22:29
von S2B
Bist du sicher, dass du dieses Script unter PHP4 nutzen willst? Gibt es nicht irgendwelche Möglichkeiten, auf PHP5 upzudaten? Gibt es alternative (PHP4-kompatible) Scripts?
Wenn nein, dann wird das schon ein bisschen Arbeit werden, kommt drauf an, wie groß die Datei ist. Imho ist es auch idiotisch, eine PHP5-Klasse in eine PHP4-Umgebung zu zwängen, denn die Klassen in PHP5 haben gegenüber den "alten" aus PHP4 nur Vorteile (Stichwort OOP).

Zu deinem speziellen Problem:

Code: Alles auswählen

function __construct($datenbank)
Das bringt dir bei PHP4 nichts, da müsste das so aussehen:

Code: Alles auswählen

function db_mysql($datenbank)
Genau das gleiche bei dem:

Code: Alles auswählen

self::$con
[...]
self::$verbindungen
Die PHP4-Version:

Code: Alles auswählen

$this->con
[...]
$this->verbindungen
usw.

Verfasst: 11.10.2006 08:48
von killerbees19
Es gäbe schon eine Möglichkeit, den Server auf PHP5 upzudaten.
Nur bin ich noch am überlegen, ob sich das wirklich bringt.

Das Script ist zum Glück nur ungefähr 70 Zeilen lang, sollte zum umschreiben also gehen.

Danke einmal für deine Hilfe.
Das mit der funktion, mit dem Namen habe ich in der nacht noch in Google gefunden, nun hast du es mir ja bestätigt. Das mit den Doppelpunkten habe ich nicht gewusst, vielen Dank für den Hinweis.

ich werde es mal versuchen, ob es jetzt dann geht. Und ich werde mir einen Umstieg auch überlegen. ich muss erst nochmals schauen, was wirklich die Unterschiede sind, nicht dass am Ende ein Script plötzlich nicht mehr geht. :lol:

[EDIT]:
Nun stehe ich noch vor einem anderen Problem.
Alles andere habe ich geändert:

Code: Alles auswählen

Fatal error: Call to a member function on a non-object in ****
Dort steht: parent->db($datenbank);
Wie muss ich das umschreiben? Ich habe dazu nichts gefunden....


MfG Christian

Verfasst: 11.10.2006 10:51
von Banger
killerbees19 hat geschrieben:EDort steht: parent->db($datenbank);
Wie muss ich das umschreiben?
in parent::db($datenbank);
killerbees19 hat geschrieben:Ich habe dazu nichts gefunden....
PHP4: http://de.php.net/manual/de/language.oop.php
PHP5: http://de.php.net/manual/de/language.oop5.php

Verfasst: 11.10.2006 11:02
von killerbees19
:grin: Danke Banger. Nun funktioniert es. Ob wirklich alle Funktionen der Klasse funktionieren, weiß ich noch nicht, aber nun weiß ich wie ich sie umschreiben muss.

Vielen Dank :wink:

MfG Christian

Verfasst: 11.10.2006 13:20
von Jensemann
killerbees19 hat geschrieben:Es gäbe schon eine Möglichkeit, den Server auf PHP5 upzudaten.
Nur bin ich noch am überlegen, ob sich das wirklich bringt.
Sofern alle deine Scripte mit PHP 5 funktionieren oder das portieren kein großer Aufwand ist, ist ein Update auf PHP 5 immer ratsam, schon allein aus Performance und Sicherheitsgründen.

Verfasst: 11.10.2006 18:08
von killerbees19
Na wenn der Server-Admin das sagt, muss es wohl stimmen :grin:
Mein Hoster hat mir nur gesagt, dass es in der nacht maximal 4 Stunden dauert -> Kein Problem, Frontpage-Erweiterungen funktionieren dort auch nicht mehr -> Verwende ich sowieso nicht.
Und meine Scripte sollten alle PHP5 tauglich sein:
phpBB
Burningbook
Scripte von planetc
und eigene Entwicklungen die nur Befehle und Funktionen verwenden, die PHP4 und PHP5 tauglich sind.

Danke für deine Antwort. Werde wohl wirklich umsteigen :wink:


MfG Christian