Datenbank-Fehler

back4ever

SlotBauer
ID: 10467
L
20 April 2006
28.165
1.243
Hi

Was ist an diesem Code falsch?
PHP:
$sql = "INSERT INTO `{prefix}config_games` (`name`, `file`, `settings`, `cat`) VALUES (\'magicalmoments\', \\\'magicalmoments\\\', \\\'a:41:{s:8:\\\"einsatz1\\\";s:3:\\\"100\\\";s:8:\\\"einsatz2\\\";s:4:\\\"1000\\\";s:8:\\\"einsatz3\\\";s:5:\\\"10000\\\";s:8:\\\"einsatz4\\\";s:6:\\\"100000\\\";s:2:\\\"bg\\\";s:3:\\\"0.2\\\";s:8:\\\"jpanteil\\\";s:3:\\\"0.2\\\";s:8:\\\"hpanteil\\\";s:3:\\\"0.1\\\";s:13:\\\"highpotfaktor\\\";s:3:\\\"100\\\";s:8:\\\"bpanteil\\\";s:3:\\\"0.1\\\";s:9:\\\"bphanteil\\\";s:3:\\\"0.1\\\";s:10:\\\"bphfaktor1\\\";s:2:\\\"50\\\";s:10:\\\"bphfaktor2\\\";s:3:\\\"500\\\";s:14:\\\"start_jackpot1\\\";s:7:\\\"1000000\\\";s:14:\\\"start_jackpot2\\\";s:7:\\\"1000000\\\";s:14:\\\"start_jackpot3\\\";s:7:\\\"1000000\\\";s:14:\\\"start_jackpot4\\\";s:7:\\\"1000000\\\";s:12:\\\"min_jackpot1\\\";s:7:\\\"5000000\\\";s:12:\\\"min_jackpot2\\\";s:7:\\\"5000000\\\";s:12:\\\"min_jackpot3\\\";s:7:\\\"5000000\\\";s:12:\\\"min_jackpot4\\\";s:8:\\\"50000000\\\";s:13:\\\"kill_jackpot1\\\";s:7:\\\"5000000\\\";s:13:\\\"kill_jackpot2\\\";s:7:\\\"5000000\\\";s:13:\\\"kill_jackpot3\\\";s:7:\\\"5000000\\\";s:13:\\\"kill_jackpot4\\\";s:8:\\\"50000000\\\";s:3:\\\"gf1\\\";s:1:\\\"5\\\";s:3:\\\"gf2\\\";s:2:\\\"10\\\";s:3:\\\"gf3\\\";s:2:\\\"20\\\";s:3:\\\"gf4\\\";s:1:\\\"2\\\";s:3:\\\"gf5\\\";s:2:\\\"15\\\";s:3:\\\"gf6\\\";s:2:\\\"60\\\";s:3:\\\"gf7\\\";s:2:\\\"40\\\";s:3:\\\"gf8\\\";s:1:\\\"8\\\";s:13:\\\"freispiel3win\\\";s:1:\\\"5\\\";s:13:\\\"freispiel4win\\\";s:2:\\\"10\\\";s:11:\\\"usejackpots\\\";s:2:\\\"ja\\\";s:5:\\\"popup\\\";s:4:\\\"nein\\\";s:6:\\\"swidth\\\";s:3:\\\"700\\\";s:7:\\\"sheight\\\";s:3:\\\"550\\\";s:7:\\\"message\\\";s:16:\\\"Magic!\\\";s:5:\\\"color\\\";s:0:\\\"\\\";}\\\', \\\'slot\\\');
INSERT INTO `{prefix}gamestats` (`file`, `win`, `lose`, `winamount`, `loseamount`, `lastgame`, `lastplayer`, `draw`, `jackpot`, `cache`, `opt`) VALUES (\\\'magicalmoments\\\', 0, 0, 0, 0, 0, 0, 0, \\\'\\\', \\\'\\\', \\\'\\\');
CREATE TABLE `{prefix}magicalmomentsfreispiele`(`userid` INT(11) NOT NULL,`freispiele` INT(11) NOT NULL,`geeinsatz` INT(11) NOT NULL,`gewinn` INT(11) NOT NULL,`faktor` INT(11) NOT NULL);";

$usql = "DELETE FROM `{prefix}gamestats` WHERE `file`=\'magicalmoments\';
DELETE FROM `{prefix}config_games` WHERE `file` = \'magicalmoments\';
DROP TABLE `{prefix}magicalmomentsfreispiele`;";
das er folgende Fehlermeldung ausspuckt

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 '\'magicalmoments\', \'a:41:{s:8:"einsatz1";s:3:"100";s:8:"einsatz2";s:4:"1000";s' at line 1You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '\'magicalmoments\', 0, 0, 0, 0, 0, 0, 0, \'\', \'\', \'\')' at line 1
Danke
 
Hm... vielleicht zuviele backslashes?
In einem in Double-Quotes eingeschlossenen Strings brauchst Du vor Single-Quotes überhaupt keinen Backslash.
Ist der Code von Hand erzeugt, oder verwendest Du irgendwelche komischen Escape-Funktionen, die das Quoting "automatisch" machen sollen?
 
ist von Hand...

das komische ist ja der Slot läuft bei mir problemlos
aber bei dem einen Käufer kommt immer wieder die "undefined" message
würde er bei mir auch nicht funktionieren ok dann wüsste ich zu 100%
das es definitiv am Slot liegt.

Aber so ?
weis nicht was ich denken soll..
 
Die Fehlermeldung zeigt dir die Stelle doch aufs Zeichen genau:
Code:
.... VALUES ([COLOR=Red][B]\[/B][/COLOR]'magicalmoments...
Der Backslash gehört da nicht hin.
 
So...neues Problem
so läuft es nun auch beim Kunden

PHP:
$sql = "INSERT INTO `{prefix}config_games` (`name`, `file`, `settings`, `cat`) VALUES (\'Magical Moments\', \'magicalmoments\', \'a:41:{s:8:\"einsatz1\";s:3:\"100\";s:8:\"einsatz2\";s:4:\"1000\";s:8:\"einsatz3\";s:5:\"10000\";s:8:\"einsatz4\";s:6:\"100000\";s:2:\"bg\";s:3:\"0.2\";s:8:\"jpanteil\";s:3:\"0.2\";s:8:\"hpanteil\";s:3:\"0.1\";s:13:\"highpotfaktor\";s:3:\"100\";s:8:\"bpanteil\";s:3:\"0.1\";s:9:\"bphanteil\";s:3:\"0.1\";s:10:\"bphfaktor1\";s:2:\"50\";s:10:\"bphfaktor2\";s:3:\"500\";s:14:\"start_jackpot1\";s:7:\"1000000\";s:14:\"start_jackpot2\";s:7:\"1000000\";s:14:\"start_jackpot3\";s:7:\"1000000\";s:14:\"start_jackpot4\";s:7:\"1000000\";s:12:\"min_jackpot1\";s:7:\"5000000\";s:12:\"min_jackpot2\";s:7:\"5000000\";s:12:\"min_jackpot3\";s:7:\"5000000\";s:12:\"min_jackpot4\";s:8:\"50000000\";s:13:\"kill_jackpot1\";s:7:\"5000000\";s:13:\"kill_jackpot2\";s:7:\"5000000\";s:13:\"kill_jackpot3\";s:7:\"5000000\";s:13:\"kill_jackpot4\";s:8:\"50000000\";s:3:\"gf1\";s:1:\"5\";s:3:\"gf2\";s:2:\"10\";s:3:\"gf3\";s:2:\"20\";s:3:\"gf4\";s:1:\"2\";s:3:\"gf5\";s:2:\"15\";s:3:\"gf6\";s:2:\"60\";s:3:\"gf7\";s:2:\"40\";s:3:\"gf8\";s:1:\"8\";s:13:\"freispiel3win\";s:1:\"5\";s:13:\"freispiel4win\";s:2:\"10\";s:11:\"usejackpots\";s:2:\"ja\";s:5:\"popup\";s:4:\"nein\";s:6:\"swidth\";s:3:\"600\";s:7:\"sheight\";s:3:\"600\";s:7:\"message\";s:16:\"Der Liebes-Slot!\";s:5:\"color\";s:0:\"\";}\', \'slot\');
INSERT INTO `{prefix}gamestats` (`file`, `win`, `lose`, `winamount`, `loseamount`, `lastgame`, `lastplayer`, `draw`, `jackpot`, `cache`, `opt`) VALUES (\'magicalmoments\', 0, 0, 0, 0, 0, 0, 0, \'\', \'\', \'\');
CREATE TABLE `{prefix}magicalmomentsfreispiele`(`userid` INT(11) NOT NULL,`freispiele` INT(11) NOT NULL,`geeinsatz` INT(11) NOT NULL,`gewinn` INT(11) NOT NULL,`faktor` INT(11) NOT NULL);";
$usql = "DELETE FROM `{prefix}gamestats` WHERE `file` = \'magicalmoments\';
DELETE FROM `{prefix}config_games` WHERE `file` = \'magicalmoments\';
DROP TABLE `{prefix}magicalmomentsfreispiele`;";

nur speichert er jetzt keine Einstellungen ab
Laufzeitdaten werden auch nicht angezeigt.
 
Problem gelöst wenns interessiert....

es lag nicht an der Datenbank
sondern am Actionscript

richtig:
PHP:
_root.unformat(e) + "&fp=" + _root.main.freispiele.text + "&time=" +  new Date().getTime());
falsch:
PHP:
_root.unformat(ok) + "&fp=" + _root.main.freispiele.text + "&time=" +  new Date().getTime());