MySQL Create Table
hubschraubaer
- datenbank
Hi!
Ich arbeite mich gerade in PHP und MySQL ein und bin grad beim MySQL-Befehl CREATE TABLE angelangt. Ich habe aber kein verständliches Beispiel gefunden, wie ich diesen Befehl per PHP an MySQL senden kann.
Ich wäre über ein einfaches Beispiel sehr dankbar!
ciao, hubschraubaer
Hi!
Ich arbeite mich gerade in PHP und MySQL ein und bin grad beim MySQL-Befehl CREATE TABLE angelangt. Ich habe aber kein verständliches Beispiel gefunden, wie ich diesen Befehl per PHP an MySQL senden kann.Ich wäre über ein einfaches Beispiel sehr dankbar!
ciao, hubschraubaer
Hallo,
generell sendest du per PHP wie folgt an MySQL:
<?
mysql_query(/*SQL-ABFRAGE*/)
?>
um eine Datenbanktabelle zu erstellen sieht das etwa so aus:
<?
$sql = "CREATE TABLE {TABELLENNAME} (
{NAME DES ERSTEN FELDES} {DATENTYP DES ERSTEN FELDES}( {LÄNGE DES DATENTYPS} ) ,
{NAME DES ZWEITEN FELDES} {DATENTYP DES ZWEITEN FELDES}( {LÄNGE DES DATENTYPS} ) ,
{NAME DES DRITTEN FELDES} {DATENTYP DES DRITTEN FELDES}( {LÄNGE DES DATENTYPS} )
) TYPE = MYISAM ;";
mysql_query($sql);
?>
yo,
wobei hier die komplette anmeldung bei dem dbms/datenbank und entsprechender handle fehlt. das sollte für ihn auch noch interessant sein.
Ilja
Hi!
Also ich habe mir jetzt so ein bisschen Quelltext zusammengestückelt. Aber irgendwo ist ein Fehler. Ich bekomme angezeigt:
Verbindung wurde aufgebaut
No database selected
Hier habe ich mal den Quelltext. Ich habe doch eigentlich die Datenbank "News" ausgewählt, oder? Deswegen verstehe ich nicht, was ich falsch mache.
<?php
error_reporting(E_ALL);
$db_link = mysql_connect("localhost","root","");
if($db_link) {
echo "Verbindung wurde aufgebaut<br />\n";
} else {
echo "Es konnte keine Verbindung aufgebaut werden";
}
$sql = "CREATE TABLE News (
ID INT,
Titel VARCHAR(60),
Inhalt TEXT,
Datum DATETIME,
Autor VARCHAR(15)
);";
mysql_query($sql);
$putin = "INSERT INTO News
(Titel,Inhalt,Datum,Autor)
VALUES
('Meine erste News',
'Dies ist meine erste News. Ich hoffe es kommen noch weiter',
NOW(),
'hubschraubaer');";
mysql_query($putin);
$result = "SELECT
Titel,
Datum
FROM
News
ORDER BY
Datum DESC;";
$result = mysql_query($sql) OR die(mysql_error());
echo "News in der Datenbank:<br />\n";
while($row = mysql_fetch_assoc($result)) {
echo $row['Datum']." > ".$row['Titel']."<br />\n";
}
?>
Wo habe ich hier einen Fehler gemacht, bzw. was kann ich besser machen?
ciao, hubschraubaer
Verbindung wurde aufgebaut
No database selected
Du musst innerhalb deines Scripts noch eien Datenbank wählen (Beachte den Punkt "DATENBANK AUSWÄHLEN"):
<?
/**** VERBINDUNG HERSTELLEN ****/
// EINSTELLUNGEN
$host = "{DEIN HOST}"; // z.B. localhost
$table = "{DIE DATENBANK}"; // z.B. dein Benutzername bei deinem Anbieter o.Ä.
$user = "{BENUTZERNAME}"; //
$pwd = "{PASSWORT}"; //
// VERBINDUNG HERSTELLEN
// (Das "@" unterdrückt eine eventuelle Fehlermeldung, wenn die Anmeldung fehlschlägt.
// $con_id speichert, falls die Anmeldung erfolgreich war, eine Connection-ID, die du nur zwingend brauchst,
// wenn du mit mehreren Verbindungen in einem Script arbeitest)
$con_id = @mysql_connect($host, $table, $serv_pwd);
// FEHLERAUSWERTUNG
// Falls keine Connection-ID existiert, steht keine Verbindung und eine Fehlermeldung wird ausgegeben.
// mysql_error() liefert den Fehler, den die letzte MySQL-Abfrage zurückgegeben hat.
if (!$con_id) {echo 'Fehler:' . mysql_error(); die();}
// DATENBANK AUSWÄHLEN
// Es muss noch die Datenbank ausgewählt werden, die benutzt werden soll.
// Ergebnis (TRUE oder FALSE) wird in $db_selected gespeichert und wieder zur Fehlerauswertung verwendet.
$db_selected = mysql_select_db($table, $con_id);
if (!$db_selected) {
die ('Kann Db nicht verwenden : ' . mysql_error());
}
/**** TABELLE ERSTELLEN ****/
$sql = "CREATE TABLE {TABELLENNAME} (
{NAME DES ERSTEN FELDES} {DATENTYP DES ERSTEN FELDES}( {LÄNGE DES DATENTYPS} ) ,
{NAME DES ZWEITEN FELDES} {DATENTYP DES ZWEITEN FELDES}( {LÄNGE DES DATENTYPS} ) ,
{NAME DES DRITTEN FELDES} {DATENTYP DES DRITTEN FELDES}( {LÄNGE DES DATENTYPS} )
) TYPE = MYISAM ;";
mysql_query($sql);
?>
Hi!
Vielen Dank für deine ausführliche Antwort.
Es gibt aber noch ein kleines Problem. Ich habe mir XAMPP istalliert und noch nichts geändert, was das Passwort oder sonst irgendwas von MySQL betrifft.
Was muss ich dann bei
$table
$user
$pwd
angeben?
$user wäre doch eigentlich "root" und
$pwd = ""; oder?
Vielen vielen Dank!
ciao, hubschraubaer
Was muss ich dann bei
$table
$user
$pwd
angeben?$user wäre doch eigentlich "root" und
$pwd = ""; oder?
Richtig, nur ob bereits standartmäßig eine Datenbank eingerichtet ist und wie die heißt, weiß ich leider auch nicht auswendig. Vielleicht weiß das ja ein XAMPP-Profi? Wie muss $table belegt werden?
Hi!
Ist bei XAMPP eine Datenbank standartmäßig eingerichtet? Wenn ja, wie heißt diese? Und wenn nein, wie richte ich diese ein?
Vielen Dank für eure Antworten!
@Dyne: Danke schön für dein Bemühen!
ciao, hubschraubaer
Hi!
Also ich hab mich gerade mal in PHPmyAdmin gewagt und gesehen, dass es eine Datenbank "test" gibt.
Daraus würde dann dies folgen:
$host = "localhost";
$table = "test";
$user = "root";
$pwd = "";
$con_id = @mysql_connect($host, $table, $serv_pwd);
Ähm, Dyne, du hast vorher das geschrieben:
$con_id = @mysql_connect($host, $table, $serv_pwd);
muss das nicht $pwd anstatt $serv_pwd, oder ist das etwas anderes?
und muss ich nicht noch einen $user bei @mysql_connect angeben? Oder ist das auch etwas anderes?
ciao, hubschraubaer
habe d'ehre hubschraubaer
Vielen Dank für deine ausführliche Antwort.
Es gibt aber noch ein kleines Problem. Ich habe mir XAMPP istalliert und noch nichts geändert, was das Passwort oder sonst irgendwas von MySQL betrifft.
Dann wuerde ich an Deiner Stelle schleunigst den Link "Sicherheitscheck"
auf der Startseite von XAMPP anklicken und dann die Securityseite aufrufen. Dein XAMPP ist sonst offen wie ein Scheunentor - da fehlt zur Freude Anderer dann nur noch die Benutzung eines WLAN. ;-)
man liest sich
Wilhelm