INC mit DB-Zugriff

Hi!

Ich bin gerade dabei, eine recht umfangreiche Programmierung in PHP in mehrere INC-Dateien zu zerlegen. Dabei tritt jetzt ein Fehler auf, den ich mir nicht erklären kann.

Eine PHP-Datei enthält eine Reihe von Include-Anweisungen, die je nach Variablenwert angesteuert werden. In diesen Includes befinden sich SQL-Zugriffe auf diverse Tabellen. Außerdem gibt es eine Funktion, die den Verarbeitungsprozess mitprotokolliert (ebenfalls als SQL-Zugriff).

Meine Idee ist, ganz zu Beginn des PHP-Programms die Verbindung mit der Datenbank herzustellen und in allen Include-Modulen auf diese Verbindung zuzugreifen. Genau das funktioniert aber nicht.

Code des PHP-Moduls:

********************************************************

<?php $conn = "";
//DB-Verbindung aufbauen include ("DB\_Connect.inc.php"); //Funktionen einbinden include ("Funktionen.inc.php"); if ($conn != "") { $prototext = "DB-Verbindung steht"; protokoll ($prototext); } ... \*\*\* hier kommt die Variablenbestückung mittels $\_POST \*\*\* sowie die diversen IF-Abfragen ?\> \*\*\* hier kommt der HTML-Teil \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Ende Code des PHP-Moduls Im DB\_Connect.inc.php steht: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* //Verbindung mit MySQL aufbauen: host, user, passwort $conn = mysql\_connect("abc-host", "xyz-user", "klm-passwort"); //Datenbank bestimmen: DB\_Name, MySQL-Handle mysql\_select\_db("DBName", $conn) or die("Fehler:".mysql\_error($conn)); \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Ende DB\_Connect.inc.php Im Funktionen.inc.php steht: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* function protokoll ($prototext) { //sql-befehl aufbauen $sql = "Insert into ZZZ (Eintrag) values ('$prototext') "; //sql-befehl ausfuehren $fkt = mysql\_query($sql, $conn) or die("Fehler:".mysql\_error$conn)." $sql"); return; } \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\* Ende Funktionen.inc.php Obwohl $conn ganz zu Beginn im php-Modul gefüllt wird, ist die Datenbank-Connection im Funktionen.inc.php unbekannt. Fehlermeldung: Warning: mysql\_query(): supplied argument is not a valid MySQL-Link resource in D:\Programme\xampp\htdocs\adm\Funktionen.inc.php on line 73 1.Frage: Warum? Was ist zu tun? Wenn ich in die Funktion "Protokoll" einen expliziten DB-Verbindungsaufbau einbaue (natürlich mit einer anderen Variablen als $conn sowie mit einer Beendigung der DB-Verbindung durch mysql\_close), dann wird der Protokoll-Datensatz korrekt weggeschrieben, aber die DB-Zugriffe der späteren Includes in den IF-Anweisungen melden dann, dass der SQL-Link keinen gültigen Wert enthält (hier wird wieder die Variable $conn benutzt, die ganz zu Beginn des PHP-Moduls gesetzt worden ist). Fehlertext: Warning: mysql\_query(): 2 is not a valid MySQL-Link resource in D:\Programme\xampp\htdocs\adm\Adm\_StartPruefung.inc.php on line 15 Frage: Warum? Weshalb kann ich nicht ganz zu Beginn eines PHP-Programms eine DB-Verbindung aufbauen und diese Verbindung in untergeordneten Moduln (Includes) verwenden? Grüße Heinrich

Hi!

Ich bin gerade dabei, eine recht umfangreiche Programmierung
in PHP in mehrere INC-Dateien zu zerlegen. Dabei tritt jetzt
ein Fehler auf, den ich mir nicht erklären kann.

**********************************************************
function protokoll ($prototext)
{
//sql-befehl aufbauen
$sql = "Insert into ZZZ (Eintrag) values (’$prototext’) ";

//sql-befehl ausfuehren
$fkt = mysql_query($sql, $conn) or
die(„Fehler:“.mysql_error$conn)."

$sql");

return;
}

Obwohl $conn ganz zu Beginn im php-Modul gefüllt wird, ist die
Datenbank-Connection im Funktionen.inc.php unbekannt.

Fehlermeldung:
Warning: mysql_query(): supplied argument is not a valid
MySQL-Link resource in
D:\Programme\xampp\htdocs\adm\Funktionen.inc.php on line 73

1.Frage: Warum? Was ist zu tun?

function protokoll ($prototext)
 {
 global $conn;
 ...