Parse error
Özcan
- php
Hallo,
der eine Fehler ist behoben, kommt hleich der nächste:
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'
in /homepages/3/d288675836/htdocs/relaunch/inc/classes/DB/class.DBMySQL.php on line 16
hier die Datei:
<?php
/**
* Abstraktionsschicht für die Datenbank (nutzt nur MySQL)
*
* Verbindet zur Datenbank und kapselt alle Anfragen an die
* Datenbank....
*
*/
class DB
{
//Datenbankverbindungsobjekt
(line 16->) public $MySQLiObj = null;
//Letzte SQL-Abfrage
public $lastSQLQuery = null;
//Status der letzten Anfrage
public $lastSQLStatus = null;
/**
* Verbindet zur Datenbank und gibt ggf. eine
* Fehlermeldung zurück.
*
*/
public function __construct()
{
//Erstellen eines MySQLi-Objektes
$this->MySQLiObj = new mysqli(DB_SERVER, DB_USER, DB_PASSWORD, DB_NAME);
//Prüfen, ob ein Fehler aufgetreten ist.
if (mysqli_connect_errno())
{
echo "Keine Verbindung zum MySQL-Server möglich.";
trigger_error("MySQL-Connection-Error", E_USER_ERROR);
die();
}
}
/**
* Beendet die Verbindung zur Datenbank bei Beenden eines
* Skriptes.
*
*/
public function __destruct()
{
$this->MySQLiObj->close();
}
/**
* Führt eine SQL-Anfrage durch.
*
* Der optionale Parameter bestimmt, ob das Ergebnis als
* Array-Struktur zurückgegeben wird oder als normales MySQL-Resultset
*
* @param text Die SQL-Anfrage
* @param boolean Parameter, ob ein Resultset oder ein Array zurückgegeben werden soll
*
* @return Array Gibt eine Ergebnismenge zurück
*/
public function query($sqlQuery, $resultset = false)
{
//Letzte SQL-Abfrage aufzeichnen:
$this->lastSQLQuery = $sqlQuery;
//Hier kann später die Protokoll-Methode doLog()
//aktiviert werden
//$this->doLog($sqlQuery);
$result = $this->MySQLiObj->query($sqlQuery);
//Das Ergebnis als MySQL-Result plain zurückgeben
if ($resultset == true)
{
//Status setzen
if ($result == false)
{
$this->lastSQLStatus = false;
}
else
{
$this->lastSQLStatus = true;
}
return $result;
}
$return = $this->makeArrayResult($result);
return $return;
}
/**
* Fehlermeldung der letzten Abfrage
*
* @return varchar Die letzte Fehlermeldung wird zurückgegeben
*/
public function lastSQLError()
{
return $this->MySQLiObj->error;
}
/**
* Array-Struktur der Anfrage
*
* Lässt ein Ergebnis aussehen, wie das von DBX
*
* @param MySQLiObject Das Ergebnisobjekt einer MySQLi-Anfrage
*
* @param boolean/Array Gibt entweder true, false oder eine Ergebnismenge zurück
*/
private function makeArrayResult($ResultObj)
{
if ($ResultObj === false)
{
//Fehler trat auf (z.B. Primärschlüssel schon vorhanden)
$this->lastSQLStatus = false;
return false;
}
else
if ($ResultObj === true)
{
//UPDATE- INSERT etc. es wird nur TRUE zurückgegeben.
$this->lastSQLStatus = true;
return true;
}
else
if ($ResultObj->num_rows == 0)
{
//Kein Ergebnis eines SELECT, SHOW, DESCRIBE oder EXPLAIN-Statements
$this->lastSQLStatus = true;
return array ();
}
else
{
$array = array ();
while ($line = $ResultObj->fetch_array(MYSQL_ASSOC))
{
//Alle Bezeichner in $line klein schreiben
array_push($array, $line);
}
//Status der Abfrage setzen
$this->lastSQLStatus = true;
//Das Array sieht nun genauso aus, wie das Ergebnis von dbx
return $array;
}
}
/**
* Maskiert einen Parameter für die Benutzung in einer SQL-Anfrage
*
* @param varchar Attributwert
*
* @return Gibt den übergebenen Wert maskiert zurück
*/
public function escapeString($value)
{
return $this->MySQLiObj->real_escape_string($value);
}
/**
* Protokolliert alle Datenbankzugriffe
*
* @param text Eine SQL-Anfrage, die "gelogt" werden soll
*/
private function doLog($sqlQuery)
{
//Nur wenn kein SELECT
$substr = substr($sqlQuery, 0, 6);
//Eintragen
if ($substr != "SELECT")
{
$sql = "INSERT INTO logging (sql,datum,name) VALUES ".
" ('".mysql_escape_string($sqlQuery)."',".
date("H:i d.m.Y", time()).",'".
$_SESSION['name']."')";
//Eintragen
$this->MySQLiObj->query($sql);
}
}
}
?>
Hallo,
public var?
Gruß
jobo
Danke für die Hilfe, aber gibt immernoch den selben Fehler aus
Hi!
Danke für die Hilfe, aber gibt immernoch den selben Fehler aus
Kannst Du bitte mal Deine PHP-Version ermitteln, ich vermute, wie dedlfix wahrscheinlich auch, ein grundsätzliches Problem.
off:PP
die server Version ist 4.4.9
Hi!
die server Version ist 4.4.9
Die ist schlicht zu alt für die 5er OOP-Syntax von PHP. Empfehlung: Update auf Version 5. Der 4er Zweig von PHP ist sowieso offiziell tot.
Lo!
erklär das mal den Typen von 1und1. Kann ich das auch selber machen oder sind da nur die Leute von 1und1 dazu berechtigt
Hi!
erklär das mal den Typen von 1und1. Kann ich das auch selber machen oder sind da nur die Leute von 1und1 dazu berechtigt
Bei 1und1 steht seit langem auch PHP5 zur Verfügung. Bitte informiere dich auf deren Supportseiten, wie du das umstellen kannst. Oder kostenpflichtig per Telefonsupport.
Lo!
Hab ich schon nachgefragt, ich soll eine .htaccess-Datei mit folgendem Inhalt hochladen:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
Hab ich auch schon erledigt, aber kein Effekt bis jetzt.
Hi!
Hab ich schon nachgefragt, ich soll eine .htaccess-Datei mit folgendem Inhalt hochladen:
Hab ich auch schon erledigt, aber kein Effekt bis jetzt.
Dann wirst du dich wohl noch einmal an den Support wenden müssen. Ich kann derzeit keinen Fehler erkennen.
Lo!
mach ich dann mal.
Vielen Dank nochmal für deine Unterstützung!!!
Hi!
Hab ich schon nachgefragt, ich soll eine .htaccess-Datei mit folgendem Inhalt hochladen:
AddType x-mapp-php5 .php
AddHandler x-mapp-php5 .php
Welche PHP-Version hast Du nun, hast Du das geprüft?
Hab ich auch schon erledigt, aber kein Effekt bis jetzt.
Kein Effekt heißt genau was?
off:PP
Hi!
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'
in /homepages/3/d288675836/htdocs/relaunch/inc/classes/DB/class.DBMySQL.php on line 16
Welche PHP-Version hast du?
Lo!
Hi,
Parse error: syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}'
class DB
{//Datenbankverbindungsobjekt
(line 16->) public $MySQLiObj = null;
Welche PHP-Version setzt du denn ein - aber schon eine 5er, oder?
MfG ChrisB
Hi!
Welche PHP-Version setzt du denn ein - aber schon eine 5er, oder?
Glaube ich nicht wirklich, deshalb ja auch die Frage...
off:PP