mysql problem mit db löschen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
armada
aufruf
ausgabe
ausgeben
befehl
benutzen
date
datei
datenbank
fehler
fehlermeldung
folgenden code
glauben
kommentar
not
null
statement
text
type
zeile
-
Ich habe folgenden Code in einer PHP datei eingef?gt:
$sql = 'DROP TABLE IF EXISTS `Chat_eingaben` ;'
. ' CREATE TABLE `Chat_eingaben` ( `ID` int( 11 ) NOT NULL AUTO_INCREMENT ,'
. ' `Name` text NOT NULL ,'
. ' `Kommentar` text NOT NULL ,'
. ' `Zeit` varchar( 50 ) NOT NULL default \'\','
. ' PRIMARY KEY ( `ID` , `Zeit` ) ,'
. ' FULLTEXT KEY `Name` ( `Name` , `Kommentar` , `Zeit` ) ) TYPE = MYISAM AUTO_INCREMENT =0;'
. ' ';
Wieso l?scht er nicht die Datenbank und erstellt diese danach erneut? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ich habe folgenden Code in einer PHP datei eingef?gt:
$sql = 'DROP TABLE IF EXISTS `Chat_eingaben` ;'
. ' CREATE TABLE `Chat_eingaben` ( `ID` int( 11 ) NOT NULL AUTO_INCREMENT ,'
. ' `Name` text NOT NULL ,'
. ' `Kommentar` text NOT NULL ,'
. ' `Zeit` varchar( 50 ) NOT NULL default \'\','
. ' PRIMARY KEY ( `ID` , `Zeit` ) ,'
. ' FULLTEXT KEY `Name` ( `Name` , `Kommentar` , `Zeit` ) ) TYPE = MYISAM AUTO_INCREMENT =0;'
. ' ';
Wieso l?scht er nicht die Datenbank und erstellt diese danach erneut?
er l?scht die ja nur wenn sie existiert, aber ich glaube du hast in deinem ganzen syntax da was falsch, die anf?hrungszeichen n?mlich!
gucks ma durch und probier nen bischen rum, und nimm evetuell das aus dem phpmyadmin und kopiers ab is einfacher! -
ich habe es aus dem phpmyadmin erzeugten phpcode kopiert
-
erstmal ne andere frage wieso willstd ud sie l?schen und neu erzeugen, wenn du sie doch auch einfch nur leeren aknnst?
-
Weil diese Variante mir sicherer erscheint und auch die einzige ist die man bei der installation verwenden k?nnte
-
du kannst es doch einfacher ohne l?schen machen!
wenn da aber nen fehler kommt kannste einfach schreiben db existiert schon oder es is ein anderer fehler aufgetreten!
Beitrag ge?ndert am 25.01 14:04 von lucas9991
Beitrag ge?ndert am 25.01 14:04 von lucas9991 -
Versuch das ganze mal in zwei Statements, also erst das DROP-Statement, dann das CREATE-Statement ausf?hren.
Dann auf jeden Fall dir, wie in den vorherigen Postings schon gesagt, die Fehlermeldungen ausgeben lassen. -
Wie kann man sich die Fehlermeldung ausgeben lassen??
-
Mit mysql_error() (steht auch im Posting von armada). Machst du am besten so:
echo "\n\n<!-- mysql_error in Zeile "; echo __LINE__; echo ":\n";
echo mysql_error();
echo "\n-->\n\n";
Dann brauchst du das nur im Quelltext deiner Seite zu suchen, weisst genau, welcher Aufruf von mysql_query() fehlgeschlagen ist und die Ausgabe des Fehlers verschandelt dir nicht deine Seite. -
Ich habe es jetzt so verfasst:
$sql = 'DROP TABLE IF EXISTS `Chat_eingaben` ;'
$sql = ' CREATE TABLE `Chat_eingaben` ( `ID` int( 11 ) NOT NULL AUTO_INCREMENT ,'
. ' `Name` text NOT NULL ,'
. ' `Kommentar` text NOT NULL ,'
. ' `Zeit` varchar( 50 ) NOT NULL default \'\','
. ' PRIMARY KEY ( `ID` , `Zeit` ) ,'
. ' FULLTEXT KEY `Name` ( `Name` , `Kommentar` , `Zeit` ) ) TYPE = MYISAM AUTO_INCREMENT =0;'
. ' ';
$ustamp = date('H').":".date('i');
mysql_query("INSERT INTO `Chat_eingaben` (`ID`, `Name`, `Kommentar`, `Zeit`) VALUES ('', 'PChat', 'Beiträge wurden von dem Admin entfernt!!!', '$ustamp')");
echo "Sie haben erfolgreich alle Beiträge aus dem Chat gelöscht.";
echo "\n\n<!-- mysql_error in Zeile "; echo __LINE__; echo ":\n";
echo mysql_error();
echo "\n-->\n\n";
er sagt mir das in Zeile 6 ein fehler sei. Das w?re diese hier:
$sql = ' CREATE TABLE `Chat_eingaben` ( `ID` int( 11 ) NOT NULL -
Du solltest das ' vor das ; setzten, sonst sieht er die Zeile als zu Ende an, hat den Befehl aber noch nicht abgearbeitet, also meldet er Fehler.
-
Ok jetzt geht das skript an sich wieder aber das l?schen funktioniert immer noch nicht
-
also so wie ich des sehe speicherst du zwar den sql-befehl in ner variable...f?hrst ihn aber nicht aus.
au?erdem schreibst du erst in die variable $sql den befehl mit drop table if exists...in der n?chsten codezeile ?berschreibst du die variable aber einfach...
also nach jedem definieren der variabel einfach noch ne zeile einf?gen:
mysql_query($sql);
mfg
armada
EDIT 0-checka:
Ich lach mich schlapp...
Thread bleibt offen, falls es immer noch nicht klappen sollte.
Beitrag ge?ndert am Tue, 25.01.2005 16:08 von 0-checka -
Also gel?sht hat er sie jetzt schon ma aber erstellt net. Wieso????
-
Falls du immer noch beide Statements (DROP und CREATE) in einem Aufruf erledigst:
In zwei Aufrufen machen.
Falls du das bereits getrennt hast:
Du weisst jetzt hoffentlich, dass man mysql_query() benutzen muss, damit ?berhaupt etwas passiert. So ungef?hr:
$blubb = "drop table hallo";
mysql_query($blubb);
$blubb = "create table hallo blabalabla etc......";
mysql_query($blubb); -
du musst in phpadmin reingehen - in deinem privaten men?. da steht alles, wie man das macht. da kannst du db's l?schen, anlegen etc... urst einfach!
-
Also der Quelltext sieht jetzt folgender ma?en aus:
$sql = 'DROP TABLE IF EXISTS `Chat_eingaben` ';
mysql_query($sql);
$sql = 'CREATE TABLE `Chat_eingaben` ( `ID` int( 11 ) NOT NULL AUTO_INCREMENT ,'
. ' `Name` text NOT NULL ,'
. ' `Kommentar` text NOT NULL ,'
. ' `Zeit` varchar( 50 ) NOT NULL default \'\','
. ' PRIMARY KEY ( `ID` , `Zeit` ) ,'
. ' FULLTEXT KEY `Name` ( `Name` , `Kommentar` , `Zeit` ) ) TYPE = MYISAM AUTO_INCREMENT =0;'
. ' ';
mysql_query($sql);
$ustamp = date('H').":".date('i');
mysql_query("INSERT INTO `Chat_eingaben` (`ID`, `Name`, `Kommentar`, `Zeit`) VALUES ('', 'PChat', 'Beiträge wurden von dem Admin entfernt!!!', '$ustamp')");
echo "Sie haben erfolgreich alle Beiträge aus dem Chat gelöscht.";
echo "\n\n<!-- mysql_error in Zeile "; echo __LINE__; echo ":\n";
echo mysql_error();
echo "\n-->\n\n"; -
1. Woher weisst du, dass die Tabelle nicht erstellt wird?
2. Was f?r eine Fehlermeldung bekommst du?
3. Du musst nach jedem Aufruf von mysql_query() die Ausgabe des Fehlers machen.
4. Schreibe uns die Fehlermeldungen.
Dieser Thread zieht sich so lange hin, weil du mit Informationen so geizig bist bzw. Dinge erst nach wiederholter Aufforderung tust. Ab jetzt schreibst du bitte in jedem Posting deinen Quelltext, jede Fehlermeldung und was sonst so passiert. Und denk daran, dir nach jedem Aufruf von mysql_query() den Fehler anzeigen zu lassen. Schau also dann im HTML Quelltext nach den Kommentaren, die du mit
echo "\n\n<!-- mysql_error in Zeile "; echo __LINE__; echo ":\n";
echo mysql_error();
echo "\n-->\n\n";
erzeugt hast.
Mit freundlichen Gr?ssen und voller Verzweiflung,
1-1-checka -
Ok also im quelltext steht :
<!-- mysql_error in Zeile 7:
-->
<!-- mysql_error in Zeile 18:
You have an error in your SQL syntax near '; ' at line 1
-->
Sie haben erfolgreich alle Beiträge aus dem Chat gelöscht.
<!-- mysql_error in Zeile 24:
Table 'usr_web200_8.Chat_eingaben' doesn't exist
-->
Quelltext ist :
<?php
include ('../userdaten/pin.php');
if (isset($admin) && $admin== $pin){
include ('../userdaten/datenbank.php');
$sql = 'DROP TABLE IF EXISTS `Chat_eingaben` ';
mysql_query($sql);
echo "\n\n<!-- mysql_error in Zeile "; echo __LINE__; echo ":\n";
echo mysql_error();
echo "\n-->\n\n";
$sql = 'CREATE TABLE `Chat_eingaben` ( `ID` int( 11 ) NOT NULL AUTO_INCREMENT ,'
. ' `Name` text NOT NULL ,'
. ' `Kommentar` text NOT NULL ,'
. ' `Zeit` varchar( 50 ) NOT NULL default \'\','
. ' PRIMARY KEY ( `ID` , `Zeit` ) ,'
. ' FULLTEXT KEY `Name` ( `Name` , `Kommentar` , `Zeit` ) ) TYPE = MYISAM AUTO_INCREMENT =0;'
. ' ';
mysql_query($sql);
echo "\n\n<!-- mysql_error in Zeile "; echo __LINE__; echo ":\n";
echo mysql_error();
echo "\n-->\n\n";
$ustamp = date('H').":".date('i');
mysql_query("INSERT INTO `Chat_eingaben` (`ID`, `Name`, `Kommentar`, `Zeit`) VALUES ('', 'PChat', 'Beiträge wurden von dem Admin entfernt!!!', '$ustamp')");
echo "Sie haben erfolgreich alle Beiträge aus dem Chat gelöscht.";
echo "\n\n<!-- mysql_error in Zeile "; echo __LINE__; echo ":\n";
echo mysql_error();
echo "\n-->\n\n";
}
else{
echo "<script>alert ('Sie sind nicht als Admin eingeloggt!');</script>";
echo "<meta http-equiv=\"refresh\" content=\"0; URL=admin_login.php\">";
}
?>
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage