PHP erstellt keine Datenbank

Christoph Haas

Mitglied
Hallo, ich habe folgendes Problem. Ich möchte über ein PHP script in MySQL eine Datenbank erstellen. Natürlich besteht auch eine Verbindung zu MySQL.

Hier mal meine sql.php

PHP:
include ("config.inc.php");
$link = mysql_connect('localhost', 'root', 'root');
if ($link) {
echo "Verbindung besteht";
}
if (mysql_create_db('test')) {
    echo "Datenbank wurde angelegt";
}

Leider geht das auch nicht wirklich
PHP:
 $table = "liste";
 $create= "CREATE TABLE $table (
  `id` int(11) NOT NULL auto_increment,
  `anrede` varchar(4) collate utf8_unicode_ci NOT NULL,
  `vorname` varchar(30) collate utf8_unicode_ci NOT NULL,
  `nachname` varchar(30) collate utf8_unicode_ci NOT NULL,
  `email` varchar(255) collate utf8_unicode_ci NOT NULL,
  `status` varchar(3) collate utf8_unicode_ci NOT NULL,
  
  PRIMARY KEY (id))";
  
  mysql_query($create);
 
?>

kann mir jemand helfen!?
 
Probiers mal mit

PHP:
mysql_query("CREATE DATABASE $dbname") or die (mysql_erorr())
//Dannach verbinden

mysql_select_db($dbname);
//Anschließend kannst du deine Tabelle erstellen
 
Das gute ist, die Datenbank wird erstellt.
Das schlechte ist nun, dass eine Fehlermeldung (Unknown database 'name') kommt, wenn ich eine Tabelle erstellen will.

sql.php
PHP:
$db 	= "test";
$table 	= "name";
$sql 	= "CREATE TABLE $table.`1` (`1` VARCHAR(1) NOT NULL) ENGINE = MyISAM";


mysql_connect("localhost","root","");
mysql_query("CREATE DATABASE $db") or die (mysql_error());
mysql_select_db($db);
mysql_query("$sql") or die (mysql_error());
 
Mach das Ganze doch mal Rückwärts:

Erstelle dir z.B. via phpmyadmin alles so wie du es gerne hättest, danach exportierst du die Datenbank.

Dann hast du den Query so wie du Ihn brauchst und kannst nach deinem Fehler sehen, bzw. den Fehler vergessen und mit dem richtigen Query weiterarbeiten
 
Setzt vorraus, dass der Provider dir die nötigen Rechte zusichert, damit du per phpmyadmin und php Datenbanken erstellen kannst...

Bei funpic.de muss man es immer erst über die Web-Site machen...

[EDIT]

Sry, vorran gehende Posts übersehn hab ^^

Code:
"CREATE TABLE $table.`1` (`1` VARCHAR(1) NOT NULL) ENGINE = MyISAM";

Was soll da der Punkt und die 1 !?

Und wozu portierst du den Tabellen Namen durch ne Variable!?
Schreibn den doch direkt ins Staement...

Versuch mal:
Code:
"CREATE TABLE name (`1` VARCHAR(1) NOT NULL) ENGINE = MyISAM";
 
Zuletzt bearbeitet:
Danke hat alles funktioniert.
Meine sql.php sieht nun so aus:

sql.php
PHP:
<?

$db 	= "test";
$table 	= "test1";
$sql 	= "CREATE TABLE $table (
  		`email` varchar(30) collate utf8_unicode_ci NOT NULL,
  		`name` varchar(30) collate utf8_unicode_ci NOT NULL)";


mysql_connect("localhost","root","");
mysql_query("CREATE DATABASE $db") or die (mysql_error());
mysql_select_db("$db");
mysql_query("$sql") or die (mysql_error());
?>
 
Wozu die unnötigen Anführungszeichen bei der Parameterangabe bei Funktionen?

PHP:
mysql_select_db($db);
mysql_query($sql) or die (mysql_error());
 
Zurück