Anfängerfragen zu MySQL-Datenbanken

damomo3392

Cadet 4th Year
Registriert
Aug. 2010
Beiträge
87
Hallo, vorweg: Ich beschäftige mich noch nicht lange auf dem Gebiet und bin ein Einsteiger ohne praktische Erfahrung.

Ich habe mir in den letzten Tagen die Tutorials auf Dieser Seite durchgelesen und versucht mit diesen zu arbeiten. Mit HTML, CSS und PHP bin ich bis jetzt so weit klar gekommen. Entweder bin ich jetzt aber zu blöde, oder das Tutorial hat erhebliche Mängel beim Thema MySQL. Es geht hier um die Lern-Lektionen 17-19 (Aktueller Stand).

Ich habe meinen Zugang zum SQL-Server via Xampp, wie im Beispiel, Lektion 17 beschrieben.
Für den Zugang zum Server - "mysql_connect(Server, Benutzername, Passwort)", etc. ist alles klar so weit. Ist ja auch logisch. (Frage hier: Da ich via Xampp arbeite ist Server=Localhost, Benutzername=root, PW=Leerzeichen?)

Wenn ich jetzt versuche eine Datenbank mit php zu schreiben komme ich aber einfach nicht mehr mit. Als Beispiel wird dort angeführt:
PHP:
	mysql_connect("mysql.meinserver.de", "benutzer001", "m31np455w0rt") or die(mysql_error()); 
	mysql_select_db("Menschen") or die(mysql_error());

	mysql_query("CREATE TABLE Personen (
	  id INT AUTO_INCREMENT,
	  Vorname CHAR,
	  Name CHAR,
	  Telefon INT,
	  Geburtsdatum DATE
	  PRIMARY KEY(id)
	)") Or die(mysql_error());
	mysql_close ();

Was ist das aber bitte für eine Datei? WO und vor allem als WAS (Endung? - .php?) speicher ich diese Datei ab?

Wie kann ich auf die Datenbank zugreifen? Habe es mit allen was mir in den Sinn gekommen ist versucht.
Hoffe ihr könnt mir hier weiter helfen - Wie gesagt, ich bin erst seit knapp vier Wochen am Werk und das auch nur neben Beruf..
Danke für hilfreiche Erklärungen
 
Hey ho,

(Frage hier: Da ich via Xampp arbeite ist Server=Localhost, Benutzername=root, PW=Leerzeichen?)
Das Standardpasswort bei XAMPP ist einfach nichts, also auch kein Leerzeichen. So würde der Connect-Befehl aussehen mit XAMPP:
PHP:
<?php
mysql_connect('localhost', 'root', '') or die('Logindaten falsch');

Was ist das aber bitte für eine Datei? WO und vor allem als WAS (Endung? - .php?) speicher ich diese Datei ab?
Das soll eine .php-Datei sein. Die speichert man im Ordner C:/xampp/htdocs ab. Nennen kannst du sie wie du willst, z.B. tabelleErstellen.php. Die kannst du dann über den Browser mal aufrufen, und zwar so: http://localhost/tabelleErstellen.php

Wie kann ich auf die Datenbank zugreifen?
Am besten mit phpMyAdmin. Das findest du unter diesem Link schon bei XAMPP vorinstalliert für dich: http://localhost/phpmyadmin
Dort sollte nach dem Ausführen der PHP-Datei links deine Datenbank Personen erscheinen.

Fürti, gell? :)
 
gib mal in deinem browser http://localhost/phpmyadmin ein.
damit kommst du auf die webbasierte mysqlverwaltung.
dort musst du dich erstmal mit root und deinem pw einloggen.

diese datei dort oben speicherst du als *.php ab.
wenn du sie nun aufrufst wird die datei ausgeführt, dabei wird dann eine verbindung zum mysqlserver hergestellt und ein query(abfrage) an mysql gesendet. hierbei handelt es sich um den befehl, einen tabelle zu erstellen.
 
Zum mit der Datenbank rumspielen, benutz PHPMyAdmin welches mit xampp installiert wurde.

Ja dies ist eine PHP Quelldatei und wird irgendwo im http root des Apache abgespeichert. "Ausgeführt" wird sie indem du die entsprechende URL via Browser aufrufst. http://localhost/mysqltest.php oder so.
 
Das habe ich mir so fast alles schon gedacht und dementsprechend auch schon herum probiert, aber trotzdem komme ich nicht weiter.

Folgender Quellcode:
PHP:
<?php	
	mysql_connect("localhost", "root", "") or die(mysql_error()); 
	mysql_select_db("Menschen") or die(mysql_error());

	mysql_query("CREATE TABLE Personen (
	  id INT AUTO_INCREMENT,
	  Vorname CHAR,
	  Name CHAR,
	  Telefon INT,
	  Geburtsdatum DATE
	  PRIMARY KEY(id)
	)") Or die(mysql_error());
	mysql_close ();
?>

Dies habe ich unter "database.php" im genannten Ordner gespeichert. Rufe ich die localhost/database.php auf bekomme ich die Meldung "Unknown database 'Menschen'" ausgegeben. Unter localhost/phpmyadmin tauchen auch nur die vorinstallierten datenbanken auf, aber keine von mir erstellte.. Sorry, falls ich mich dumm anstelle.
 
du musst die Datenbank "Menschen" natürlich erst anlegen, da die so noch nicht vorhanden ist. das geht mit dem phpmyadmin ganz easy. der code oben erstellt dann in der datenbank "Menschen" eine Tabelle "Personen" welche wiederum mit diversen Spalten (Vorname, Name etc.) versehen wird. In diese Spalten kannst du dann später die entspr. Werte für einzelne Personen eintragen.
 
Die Datenbank kann man also nicht via PHP erstellen, wie es im Tutorial zu verstehen ist?!

Habe die Datenbank "Menschen" jetzt Beispielsweise angelegt, dort aber noch keine Tabellen erstellt. Quelltext siehe mein letzter Beitrag - Ausgabe: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(id) )' at line 7

Wenn ich "mysql_query("CREATE TABLE Personen" richtig verstehe, lege ich hiermit doch eine Tabelle für Personen direkt über php an?!

----

edit: Schreiben kann ich in die Datenbank..
 
Zuletzt bearbeitet:
teste mal

PHP:
    <?php
    mysql_connect("localhost", "root", "") or die(mysql_error());
    mysql_select_db("Menschen") or die(mysql_error());
     
    mysql_query("CREATE TABLE Personen (
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    Vorname CHAR,
    Name CHAR,
    Telefon INT,
    Geburtsdatum DATE
    )") Or die(mysql_error());
    mysql_close ();
    ?>
 
Werde ich morgen mal testen, danke
Ergänzung ()

Erst einmal ein Danke, es funktioniert jetzt tatsächlich (Mit einer Ausnahme) - Nur, woran lag es? Wofür ist die Null zuständig? Habe bis jetzt nur eine sehr schlechte Erklärung auf englisch gefunden..

Die Ausnahme: Statt wie in meinem Beispiel unter Name|Vorname wird dort nicht "Franz Gans" angezeigt, sondern eben nur F und G, also die ersten Buchstaben!?
 
"NOT NULL" bedeutet, dass in dieser Spalte keine NULL-Werte (also "Nichts") stehen dürfen.

Das Vor und Nachname nur ein Zeichen lang sind, dürfte daran liegen, dass du den Datentyp CHAR (ein einzelnes Zeichen) benutzt.
 
Laut Definition von html.net ist Char aber -
CHAR -
Kurzer Text mit bis zu 255 Zeichen

Wenn ich die Datenbank manuell in phpmyadmin erstelle und nicht via php und dann in die db schreibe wird der name nämlich auch komplett ausgegeben?
 
Egal, was da steht. CHAR und VARCHAR brauchen eine Länge.... und phpMA macht nix anders. Genauer gesagt haut es mir das Erstell-Formular um die Ohren, wenn ich für CHAR/VARCHAR keine Länge definiere.

Du solltest dir evtl. die MySQL-Dokumentation mal durchlesen, insbesondere hinsichtlich der Datentypen und deren korrekten Verwendung.
 
Danke, habe den Fehler inzwischen gefunden, verstanden und beheben können ;-)
 
Zurück
Oben