SQL Syntax Error

Nabi

Erfahrenes Mitglied
hallo zusammen;
ich habe versucht dieser SQL Code über PHP myadmin auszuführen

Code:
CREATE TABLE IF NOT EXISTS {$db_prefix}shoutbox
(ID_SHOUT int(11) NOT NULL auto_increment,
ID_MEMBER int(11) NOT NULL,
displayname tinytext default NULL,
message text NOT NULL,
email tinytext default NULL,
time int(11) NOT NULL,
PRIMARY KEY (ID_SHOUT)) TYPE=MyISAM

geht nicht , ich bekomme die folgende fehler Meldung :
MySQL meldet:

#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei '{$db_prefix}shoutbox
(ID_SHOUT int(11) NOT NULL auto_increment,
ID_MEMBER int(' in Zeile 1


schaut das Bild bitte an, was ist die lösung ?
 

Anhänge

  • Screen 00070.jpg
    Screen 00070.jpg
    82,3 KB · Aufrufe: 38
ich verstehe nicht !, die $db_prefix soll bekannt sein , weil ich habe über PHP MyAdmin erst auf bestimmte Datenbankname geklickt wie im Bild und dann ich habe zum ausführen des Codes SQL ausgewählt , was habe ich falsch gemacht ?
 

Anhänge

  • Screen 00071.jpg
    Screen 00071.jpg
    76,4 KB · Aufrufe: 16
  • Screen 00072.jpg
    Screen 00072.jpg
    78 KB · Aufrufe: 28
Ich habe auch versucht (nicht Manuel) sondern über eine php Seite im Server den
Code auszuführen so:
Code:
<?php
if (!defined('SMF'))
	die('Hacking attempt...');

db_query("CREATE TABLE IF NOT EXISTS {$db_prefix}shoutbox
  	(ID_SHOUT int(11) NOT NULL auto_increment, 
  	ID_MEMBER int(11) NOT NULL,
  	displayname tinytext default NULL,
    	message text NOT NULL,
    	email tinytext default NULL,
    	time int(11) NOT NULL,
    	PRIMARY KEY  (ID_SHOUT)) TYPE=MyISAM", __FILE__, __LINE__);

// Determine whether an PM upgrade is necessary.
$request = db_query("
	SHOW COLUMNS
	FROM {$db_prefix}shoutbox
	LIKE 'id'", __FILE__, __LINE__);
$need_upgrade = mysql_num_rows($request) > 0;
if ($need_upgrade)
{
	// Backup old table... shamelessly stolen from upgrade script.
	$result = db_query("
		SHOW CREATE TABLE {$db_prefix}shoutbox", __FILE__, __LINE__);
	list (, $create) = mysql_fetch_row($result);
	$create = preg_split('/[\n\r]/', $create);
	foreach ($create as $k => $l)
	{
		if (strpos($l, 'KEY') === false)
			unset($create[$k]);
	}
	db_query("
		DROP TABLE IF EXISTS `backup_shoutbox`", __FILE__, __LINE__);
			
	db_query("
		CREATE TABLE `backup_shoutbox`" . (!empty($create) ? ' (
					' . implode('
					', $create) . ')' : '') . "
		TYPE=MyISAM
		SELECT * FROM {$db_prefix}shoutbox", __FILE__, __LINE__);
	
	// Alter the old table.
	db_query("ALTER TABLE {$db_prefix}shoutbox
		DROP PRIMARY KEY,
		CHANGE COLUMN id ID_SHOUT int(11) unsigned NOT NULL auto_increment,
		DROP name", __FILE__, __LINE__);
	db_query("ALTER TABLE {$db_prefix}shoutbox
		ADD PRIMARY KEY (ID_SHOUT)", __FILE__, __LINE__);

}
$toSet = array();
$toSet['shoutdir'] = '0';
$toSet['shoutlimit'] = '10';
$toSet['shoutmaxchr'] = '30';
$toSet['shoutsplitchr'] = '27';
$toSet['enablescrollshout'] = '1';
$toSet['shoutscrollwidth'] = '150';
$toSet['shoutscrollheight'] = '200';
$toSet['shoutscrollspeed'] = '2';
$toSet['shoutscrolldir'] = 'up';
$toSet['shoutscrolldelay'] = '60';
$toSet['shoutsep'] = '<hr />';
$toSet['enablearchiveshout'] = '1';
$toSet['shout_noGuestEmail'] = '0';
$toSet['shout_upgrade_121'] = '1';
$toSet['shout_enableXML'] = '0';

// Insert settings
foreach ($toSet as $key => $value){
	db_query("INSERT IGNORE INTO
		{$db_prefix}settings
		(`variable`, `value`)
		VALUES ('$key', '$value')", __FILE__, __LINE__);
}

// Permissions
if (empty($modSettings['shout_upgrade_121']))
db_query("
	INSERT INTO {$db_prefix}permissions
		(ID_GROUP, permission)
	VALUES
		(0, 'make_shout'),
		(2, 'make_shout'),
		(2, 'delete_shout')", __FILE__, __LINE__);
		
		
?>
Diesmal zeigt :
Hacking attempt...
 
Zuletzt bearbeitet:
Versuch mal das hier:

PHP:
CREATE TABLE IF NOT EXISTS shoutbox
(ID_SHOUT int(11) NOT NULL auto_increment,
ID_MEMBER int(11) NOT NULL,
displayname tinytext default NULL,
message text NOT NULL,
email tinytext default NULL,
time int(11) NOT NULL,
PRIMARY KEY (ID_SHOUT)) TYPE=MyISAM

den soweit ich weiss kann SQL selbst nicht interpretieren was genau {$db_prefix} macht bzw. was er damit anstellen soll

Und mir kommt es so vor als benutzt du diese Ajax-Shoutbox wofür es auch dazu ein Tutorial gibt allerdings kann ich es nicht genau sagen da ich ja nur den SQL Code sehe :P

Wie gesagt versuch es mal ohne {$db_prefix} dann sollte es auch funktionieren
 
der $db_prefix ist 'smf_' also der Tabelle soll ein teil vom 'smf_' denke ich , es gibt im
Server settings.php wo diese information befindet . deine oben gennante code , ich fürchte .. macht ganz andere tabelle oder ?

auch wenn ich $db_prefix durch 'smf_' ersetze der error ist nicht weg :
#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei '{'smf_'}shoutbox
(ID_SHOUT int(11) NOT NULL auto_increment,
ID_MEMBER int(11) ' in Zeile 1
 
Zuletzt bearbeitet:
Zurück