Zum Inhalt springen

Datenbankzugriff mit PHP5


Empfohlene Beiträge

Hallo Leute,

meine Datenbankverbindung schaut wie folgt aus:

<!-- dbConnect.inc -->

<!-- Datenbankverbindung -->

<?php

// Verbindung zum SQL-Server aufbauen....

// Sicherheitsabfrage im Falle eines Fehlschlages

// Verwendung des @-Zeichens werden automatische Fehlermeldung unterlassen

$hostname = "localhost";

$verzeichnis = "root";

$password = "";

$dbconn = @mysql_connect($hostname,$verzeichnis,$password);

if (!$dbconn){

echo("<p>Verbindung zum Datenbankserver zur Zeit nicht möglich.</p>");

exit();

}

// Datenbank auswählen mit der gearbeitet werden soll

$db_name = "TEST";

if (! @mysql_select_db($db_name)){

echo("<p>Auswahl der ORGSYS-Datenbank zur Zeit nicht möglich.</p>");

exit();

}

?>

---------

Nun möchte ich das File in jede Seite einbinden.

Dies mache ich mit include. Aber irgendwie passiert da nichts.

$pfadAngabe = "phpinc/dbConnect.inc";

include ($pfadAngabe);

mein Monitor bleibt dann weis.

Wo liegt das Problem???

Link zu diesem Kommentar
Auf anderen Seiten teilen

Also erst einmal ist die Variable $Verzeichnis unglücklich gewählt, nenn die $User oder $Benutzer, weil du an der Stelle im mysql_connect den User übergibst!

Wie sieht denn deine Verzeichnisstruktur aus?

Wenn du das so machen willst wie du das beschrieben hast dann wäre das

Root

| - index.php - mit dem include auf phpinc/dbConnect.inc.php

| - phpinc/dbConnect.inc.php

Probier doch mal aus der dbConnect.inc eine dbConnect.inc.php zu machen, dann könnte das auch schon funktionieren! Dann noch den include("phpinc/dbConnect.inc.php") und dann sollte es laufen!

Link zu diesem Kommentar
Auf anderen Seiten teilen

Root

| - index.php - mit dem include auf phpinc/dbConnect.inc.php

| - phpinc/dbConnect.inc.php

Probier doch mal aus der dbConnect.inc eine dbConnect.inc.php zu machen, dann könnte das auch schon funktionieren! Dann noch den include("phpinc/dbConnect.inc.php") und dann sollte es laufen!

include sollte auch mit dbConnect.inc gehen. Include macht ja nichts anderes, als den Inhalt der Datei an dieser Stelle einzufügen (beim ausführen). Solange in der Datei PHP steht (<?PHP ... ?>) kann die Datei sonst wie heissen.

Aber wenn es keine .php Datei ist (dann aber auch s.U.), würd ich sie nicht im DocumentRoot (oder einem Unterverzeichniss) ablegen. Wie das in deinem Beispiel ja der Fall ist. auch .php Dateien (also eigentlich alle Dateien, die irgendwelche vertrauliche Infos enthalten (Username, Passwort etc.)) sollte am besten ausserhalb des vom Internet erreichbaren Pfades liegen.

Ich könnte ja, von irgendwoher, den Pfad zur Datei kennen, dann könnte ich diese im Browser direkt abrufen. Im Normalfall jagt der Server die Datei durch den PHP INterpreter. Also eine .php Datei würde dann den Usernamen und das PW nicht enthalten. Eine .inc Datei schon, es sei denn ich sage dem Server, das auch .inc Dateien durch den PHP-Interpreter sollen.

Darauf sollte man sich aber nicht verlassen, was wenn irgendwie durch einen Fehler der Server ohne PHP läuft? Dann wird die PHP Datei als normaler Text ausgegeben. Mit allen Passwörter o.ä. die darin stehen.

Daher die Datei also ausserhalb der DocumentRoots ablegen. Der PHP-Interpreter läuft auf dem Server und kann nicht nur auf das DocumentRoot zugreifen (zur Not (SafeMode) das Include Verzeichniss in der PHP.ini freigeben). Somit wären alle glücklich ;)

Zum Problem:

Ich finde auch, da werden ja nur Ausgaben gemacht, wenn etwas schief geht. Also entweder klappt das include nicht, dann würde aber eine Fehlermeldung kommen, oder alles klappt wie es das soll.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich habe trotzdem noch das problem das ich keinen zugriff auf die datenbank erhalte.

habe das ganze mal ohne include gemacht.

aber nichts funktioniert.

vor der datenbank connection habe ich eine echo - Funktion eingebaut um zu sehen ob diese angezeigt wird. wird ohne probleme angezeigt.

nach der datenbank connection wieder ein echo...dieses echo erscheint nicht.

also irgendwo wird da der wurm sein. aber wo??

benutze php5, mysql 4.X, und einen apache webserver.

wenn ich mit den hilfsprogrammen von mysql auf die datenbank zugreife entstehen keine probleme. ohne probleme kann ich auf die datenbank zugreifen.

nur über den webbrowser gibt es probleme. bei meiner connection.

:confused: :confused:

echo("hallo");

$server ='localhost';

$dbname='orgsys';

$name='root';

$pass='langeweile';

$db = @mysql_connect($server, $name, $pass) or print ('Server konnte nicht verbunden werden');

mysql_select_db($dbname, $db) or print ('Datenbank konnte nicht erreicht werden');

echo("wo bin i??");

so habe ich das gemacht... und danach folgt eine ganz normel webseite....

aber das wo bin i?? wird nicht angezeigt...

es muss doch dann ein fehler irgendwo auftreten??

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...

Wenn du PHP5 benutzt, dann ist der Zugriff auf die Datenbank nun standardmäßig nicht mehr durch die mysql.dll sondern durch die mysqli.dll schnittstelle.

Das heißt, dass du nicht mehr mysql_connect sondern mysqli_connect schreiben musst.

setz bei den MySQL-Funktionen einfach mal ein i hinter das mysql, wenn es der Fehler ist, den ich vermute, sollte es danach funktionieren ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

$dbconn = mysql_connect($hostname,$verzeichnis,$password);

if (!$dbconn){

echo("<p>Verbindung zum Datenbankserver zur Zeit nicht möglich.</p>");

exit();

}

So habe ich früher den Datenbankzugriff gehabt. Die Variabeln sind auch mit werden bestückt.

Komischewrweise funktioniert das so nicht mehr. Ich muss diese if clauses weglassen dann klappt es auch wieder mit dem Datenbankzugriff. Wieso??

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...