Datenbank und Sessions

Sublig

Mitglied
Hey,
ich hoffe ihr könnt mir bei zwei Problemen helfen.

1.
Ich versuche gerade in eine Datenbank etwas zu schreiben, was aber leider nicht funktionieren will.

PHP:
<?php

//Verbindung herstellen
$datenbank = mysql_connect('localhost','sublig_test','Passwort');

if($datenbank)
    echo('DB-Serververbindung hergestellt! ');
else
    die('DB-Serververbindung fehlgeschlagen! ');

$verbunden = mysql_select_db('User');

if($verbunden)
    echo('DB-Verbindung hergestellt!! ');
else
    die('DB-Verbindung fehlgeschlagen!! ');

//Daten in DB speichern;

$sql="INSERT INTO User
(ID, Alter) VALUES ('', '6')";

//Verbindung beenden
mysql_close($datenbank);

?>

Bei mir kommt dann immer die Meldung "'DB-Verbindung fehlgeschlagen!!", leider weiß ich nicht was ich falsch mache...

2.
Wenn ich dann etwas in der Datenbank stehen habe, würde ich gerne mit einer Url + Session-ID (bin mir nicht sicher ob ich da Session benutzen muss) darauf zugreifen. Zum Beispiel "www.test.de/test.php?ID=1" oder so ähnlich und dann wird mir das Alter von ID 1 auf der Seite angezeigt. Hab dazu leider nichts gefunden was mir geholfen hat, außer dass ich irgendetwas mit GET machen muss?


Mfg
 
Zwei Punkte:

1. Verwende mysql_error() wenn möglich:

PHP:
//Verbindung herstellen
$datenbank = mysql_connect('localhost','sublig_test','Passwort');

if($datenbank)
    echo('DB-Serververbindung hergestellt! ');
else
    die('DB-Serververbindung fehlgeschlagen! ' + mysql_error());

2. Das SQL-Statement nur in eine Variable zu schreiben, bringt dir erstmal nichts. Du musst das schon mit mysql_query() ausführen:

PHP:
//Daten in DB speichern;

$sql="INSERT INTO User
(ID, Alter) VALUES ('', '6')"; 
mysql_query($sql) or die(mysql_error());
 
Danke, also dann sieht es jetzt so aus:
PHP:
<?php

//Verbindung herstellen
$datenbank = mysql_connect('localhost','sublig_test','Passwort');
 
if($datenbank)
    echo('DB-Serververbindung hergestellt! ');
else
   die('DB-Serververbindung fehlgeschlagen! ' + mysql_error());

$verbunden = mysql_select_db('User');

if($verbunden)
    echo('DB-Verbindung hergestellt! ');
else
    die('DB-Verbindung fehlgeschlagen! ' + mysql_error());

//Daten in DB speichern;

$sql="INSERT INTO User
(ID, Alter) VALUES ('1', '6')"; 
mysql_query($sql) or die(mysql_error());

//Verbindung beenden
mysql_close($datenbank);

?>

Nur bekomme ich jetzt gerade irgendwie keine Antwort auf die DB-Verbindung, also steht da nur "DB-Serververbindung hergestellt!"
 
Dann sollte dein Eintrag in "User" angelegt worden sein. Das kannst du ggf mit mysql_affected_rows() prüfen, nach dem du mysql_query() aufgerufen hast:

PHP:
$sql="INSERT INTO User
(ID, Alter) VALUES ('1', '6')"; 
mysql_query($sql) or die(mysql_error()); 

if(mysql_affected_rows() == 0)
  echo "Datensatz konnte nicht angelegt werden";
else
  echo "Datensatz wurde angelegt.";
 
Ist leider nicht der Fall)=

Ich hab es jetzt nochmal so gemacht:
PHP:
<?php

//Verbindung herstellen
$datenbank = mysql_connect('localhost','sublig_test','hallodu');

if($datenbank)
    echo('DB-Serververbindung hergestellt! ');
else
    die('DB-Serververbindung fehlgeschlagen! ');

$verbunden = mysql_select_db('User');

if($verbunden)
    echo('DB-Verbindung hergestellt!! ');
else
    die('DB-Verbindung fehlgeschlagen!! '); 

//Daten in DB speichern;

$sql="INSERT INTO User
(ID, Alter) VALUES ('', '6')"; 
mysql_query($sql) or die(mysql_error());

//Verbindung beenden
mysql_close($datenbank);

?>

Und jetzt kommt wieder wenigstens wieder die Fehlermeldung dass die DB-Verbindung fehlgeschlagen hat. Aber ich weiß nicht was ich da falsch mach, da man da ja eigentlich nichts falsch machen kann außer den Datenbanknamen nicht richtig einzutragen, welcher in dem Fall ganz sicher User ist:)
 
Naja, rein teo kann ja mysql_connect fehlschlagen, was du ja abgefangen hast. Wird "Serververbindung hergestellt" angezeigt?

Wenn ja wäre noch die Frage, ob der Benutzer "sublig_test" überhaupt Rechte hat, auf die Datenbank "User" zuzugreifen.

PS: mysql_error() verwenden, hilft Fehler zu finden.
 
Wenn ich hinten noch mysql_error() dran hänge wird bei mir des "DB-Verbindung fehlgeschlagen" nicht mehr angezeigt, deswegen hab ich des jetzt mal weg gelassen.

Also per Hand kann ich ja drauf zugreifen und auch neue Datensätze hinzufügen, die Rechte müsste ich also eigentlich haben.

Mfg
 
Kommst du aus der Java- oder C++-Ecke?

Schau dir mal das hier an:
PHP:
if($datenbank)
    echo('DB-Serververbindung hergestellt! ');
else
   die('DB-Serververbindung fehlgeschlagen! ' + mysql_error());

Statt dem + muss da ein . hin, String-Concatenation bei PHP wird mit einem . gemacht ;-)

EDIT Meint, ich habe den Fehler bereits gemacht ;-) Zu viel Java ;-) Sorry
 
Zuletzt bearbeitet:
Ich komme aus der AutoIt-Ecke..

Ah danke, jetzt klappt es(=

Fehlermeldung: "Access denied for user 'sublig_test'@'localhost' to database 'User' "

Mir wurde also doch der Zugriff verweigert, ich schau mal wie ich des jetzt machen.

Danke nochmal!

Mfg
 
Zurück