TheJoker
Grünschnabel
Guten Morgen allerseits. Ich steh vor einem kleinen Problem, dass mich zum verzweifeln bringt.
Ich habe eine Datei, die mir meine kleine Webapplikation installieren soll. Dazu muss man in einem Formular die entsprechenden Datenbankzugangsdaten eingeben. Danach sollte die Datenbank erstellt werden. Das Problem ist nun folgendes:
Die Abfrage, welche mir die Datenbank erstellen soll, bringt einen Syntaxerror. Im phpMyAdmin jedoch funktioniert die selbe Abfrage problemlos.
Ich seh einfach nicht, warum das ganze nicht Funktioniert..
Ich hoffe Ihr könnt mir wieder so schnell helfen wie beim letzten mal
lg Pascal
Ich habe eine Datei, die mir meine kleine Webapplikation installieren soll. Dazu muss man in einem Formular die entsprechenden Datenbankzugangsdaten eingeben. Danach sollte die Datenbank erstellt werden. Das Problem ist nun folgendes:
Die Abfrage, welche mir die Datenbank erstellen soll, bringt einen Syntaxerror. Im phpMyAdmin jedoch funktioniert die selbe Abfrage problemlos.
PHP:
require('../config/config.php');
try
{
$file = "../config/config.php";
if(!isset($_POST['db_host'],$_POST['db_user'],$_POST['per_site'],$_POST['db_name'],$_POST['version']))
throw new Exception ('Nicht alle Pflichtfelder ausgefüllt',207);
$host = $_POST['db_host'];
$user = $_POST['db_user'];
$persite = $_POST['per_site'];
$pwd = $_POST['db_pwd'];
$db = $_POST['db_name'];
$vers = $_POST['version'];
$text = file_get_contents($file);
$_host = HOST;
$_user = DB_USER;
$_db = DATABASE;
$_pwd = DB_PWD;
$_persite = N_ANZEIGEN;
$_vers = VERSION;
$text = str_replace("'$_host'", "'$host'", $text);
$text = str_replace("'$_user'", "'$user'", $text);
$text = str_replace("'$_db'", "'$db'", $text);
$text = str_replace("'$_pwd'", "'$pwd'", $text);
$text = str_replace("'$_persite'", "'$persite'", $text);
$text = str_replace("'$_vers'", "'$vers'", $text);
file_put_contents($file, $text);
$connect = mysql_connect($host, $user, $pwd);
if (!$connect)
{
throw new Exception(mysql_error(),208);
}
mysql_set_charset('utf8_unicode_ci',$connect);
$db_create = "CREATE DATABASE IF NOT EXISTS $db";
$db_create_query = mysql_query($db_create);
if(!$db_create_query)
echo mysql_error();
$db_select = mysql_select_db($db);
if (!$db_select)
throw new Exception(mysql_error(),208);
$sql = file_get_contents('query.sql');
$query = mysql_query($sql);
if(!$query)
throw new Exception(mysql_error(),208);
}
catch (Exception $e)
{
echo $e->getMessage();
}
Code:
CREATE TABLE anrede (
anid int(11) NOT NULL AUTO_INCREMENT,
anrede varchar(4) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (anid)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE auftrag (
aid int(11) NOT NULL AUTO_INCREMENT,
startdatum date NOT NULL,
enddatum date NOT NULL,
vorlagen_vid int(11) NOT NULL,
geraete_gid varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
user_uid int(11) NOT NULL,
kunden_kid int(11) NOT NULL,
status_sid int(11) NOT NULL,
produkt_pid int(11) NOT NULL,
anzahl int(11) NOT NULL,
erfasst date NOT NULL,
letzte_durchfuehrung date NOT NULL,
aktiv tinyint(1) NOT NULL,
cid int(11) NOT NULL,
PRIMARY KEY (aid,vorlagen_vid,geraete_gid,user_uid,kunden_kid,status_sid),
KEY geraete_gid (geraete_gid),
KEY geraete_gid_2 (geraete_gid)
) ENGINE=InnoDB DEFAULT charset=utf8;
CREATE TABLE dbupdatelog (
logId int(11) NOT NULL AUTO_INCREMENT,
datum date NOT NULL,
zeit time NOT NULL,
laufzeit time NOT NULL,
erfolgreich int(11) NOT NULL,
format_falsch int(11) NOT NULL,
hash varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (logId)
) ENGINE=InnoDB DEFAULT charset=utf8;
CREATE TABLE geraete (
gid int(11) NOT NULL,
beschreibung int(11) NOT NULL
) ENGINE=InnoDB DEFAULT charset=utf8;
CREATE TABLE kunden (
kid int(11) NOT NULL,
firmenname text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
firmenname2 text CHARACTER SET utf8 COLLATE utf8_unicode_ci,
anrede int(11) DEFAULT NULL,
vorname varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
nachname varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
adresse varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
plz varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
ort varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
mail varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
telefon varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
fax varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL,
PRIMARY KEY (kid)
) ENGINE=InnoDB DEFAULT charset=utf8;
CREATE TABLE log_sendmail (
mid int(11) NOT NULL AUTO_INCREMENT,
datum date NOT NULL,
mailhash varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
auftrag_aid int(11) NOT NULL,
user_uid int(11) NOT NULL,
PRIMARY KEY (mid)
) ENGINE=InnoDB DEFAULT charset=utf8;
CREATE TABLE produkte (
pid int(11) NOT NULL AUTO_INCREMENT,
name varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
preis decimal(11,2) NOT NULL,
vorlagen_vid int(11) NOT NULL,
PRIMARY KEY (pid)
) ENGINE=InnoDB DEFAULT charset=utf8;
CREATE TABLE status (
sid int(11) NOT NULL AUTO_INCREMENT,
status varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (sid)
) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT charset=utf8;
CREATE TABLE user (
uid int(11) NOT NULL AUTO_INCREMENT,
name varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
pwd varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
mail varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
vorname varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
nachname varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
position varchar(255) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
signatur text CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
last date NOT NULL,
ip varchar(15) NOT NULL,
versuche int(11) NOT NULL,
gesperrt tinyint(4) NOT NULL,
bis int(11) NOT NULL,
rang int(11) NOT NULL,
PRIMARY KEY (uid)
) ENGINE=InnoDB DEFAULT charset=utf8;
CREATE TABLE vorlagen (
vid int(11) NOT NULL AUTO_INCREMENT,
titel varchar(45) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
text longtext CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (vid)
) ENGINE=InnoDB DEFAULT charset=utf8;
INSERT INTO anrede (anid,anrede) VALUES ('1','Herr');
INSERT INTO anrede (anid,anrede) VALUES ('2','Frau');
INSERT INTO user (uid,name,pwd,mail,vorname,nachname,position,signatur,last,ip,versuche,gesperrt,bis,rang) VALUES ('1','admin','21232f297a57a5a743894a0e4a801fc3','example@yourdomain.com','Your','Name','Your Position','Your Signature(with markers)','0000-00-00','127.0.0.1','0','0','0','2');
INSERT INTO status (sid,status) VALUES ('1','Example');
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 'CREATE TABLE auftrag ( aid int(11) NOT NULL AUTO_INCREMENT, startdatum date ' at line 6
Ich seh einfach nicht, warum das ganze nicht Funktioniert..
Ich hoffe Ihr könnt mir wieder so schnell helfen wie beim letzten mal
lg Pascal