Daten nicht in die datenbank gepackt

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Daten nicht in die datenbank gepackt

    Habe mich ans Register/login System gesetzt so wie im Tutorial von Jeffry.

    jetzt will der die daten nicht in die db packen.

    Mysql_Log:

    SQL-Abfrage

    1. [21:14:13] [plugins/mysql] error #1064 while executing query "SELECT id From accounts WHRE name = 'teso'": 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 'name = 'teso'' at line 1



    Mein Code sieht so aus:
    Spoiler anzeigen

    Quellcode

    1. #include <a_samp>
    2. #include <a_mysql>
    3. //Datenbankinformation
    4. #define MYSQL_HOST "127.0.0.1" //IP Adresse des MYSQL Server
    5. #define MYSQL_USER "root" //Benutzername dder angemelet wird
    6. #define MYSQL_PASS "" //password des benutzers
    7. #define MYSQL_DBSE "samp" //Name der Dantenbank
    8. new MySQL:handle; //Die Connection-Handlem über die wir später auf die Tabellen der Datenbank zugreiffen
    9. //FORWARD:
    10. forward OnUserCheck(playerid);
    11. forward OnUserRegister(playerid);
    12. forward OnUserLogin(playerid);
    13. //DIALOGE:
    14. #define DIALOG_REGISTER 1
    15. #define DIALOG_LOGIN 2
    16. //ENUM:
    17. enum pDataEnum
    18. {
    19. p_id,
    20. bool:pLoggedIn,
    21. pName[MAX_PLAYER_NAME],
    22. pAdminlevel,
    23. pMoney,
    24. pFraktion,
    25. pFrank
    26. }
    27. new PlayerInfo[MAX_PLAYERS][pDataEnum];
    28. public OnGameModeInit()
    29. {
    30. SetGameModeText("Blank Script");
    31. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    32. MySQL_SetupConnection();
    33. mysql_log();
    34. return 1;
    35. }
    36. public OnGameModeExit()
    37. {
    38. mysql_close(handle);
    39. return 1;
    40. }
    41. public OnPlayerRequestClass(playerid, classid)
    42. {
    43. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    44. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    45. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    46. if(!PlayerInfo[playerid][pLoggedIn])
    47. {
    48. new query[127];
    49. mysql_format(handle,query,sizeof(query), "SELECT id From accounts WHRE name = '%e'",PlayerInfo[playerid][pName]);
    50. mysql_pquery(handle,query, "OnUserCheck","d",playerid);
    51. }
    52. return 1;
    53. }
    54. public OnPlayerConnect(playerid)
    55. {
    56. PlayerInfo[playerid][p_id] =0;
    57. PlayerInfo[playerid][pLoggedIn] = false;
    58. PlayerInfo[playerid][pAdminlevel] = 0;
    59. PlayerInfo[playerid][pMoney] = 0;
    60. PlayerInfo[playerid][pFraktion] =0;
    61. PlayerInfo[playerid][pFrank] = 0;
    62. GetPlayerName(playerid, PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
    63. return 1;
    64. }
    65. public OnPlayerDisconnect(playerid, reason)
    66. {
    67. //Speichere den Spieler wenn er der Server verlässt
    68. SaveUserStats(playerid);
    69. return 1;
    70. }
    71. public OnUserCheck(playerid)
    72. {
    73. new rows;
    74. cache_get_row_count(rows);
    75. if(rows == 0)
    76. {
    77. ShowPlayerDialog(playerid,DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registraiton", "Bitte registriere dich:","Ok","Abbrechen");
    78. }
    79. else
    80. {
    81. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung","Bitte Logge dich ein:", "Ok", "Abbrechen");
    82. }
    83. return 1;
    84. }
    85. public OnUserRegister(playerid)
    86. {
    87. //Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelesen
    88. PlayerInfo[playerid][p_id] = cache_insert_id();
    89. PlayerInfo[playerid][pLoggedIn] = true;
    90. SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich.");
    91. return 1;
    92. }
    93. public OnUserLogin(playerid)
    94. {
    95. //Query wurde ausgeführt und das Ergebnis im Cache gespeichert
    96. new rows;
    97. cache_get_row_count(rows);
    98. if(rows == 0)
    99. {
    100. //Der Spieler hat ein falsches Passwort eingegeben
    101. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
    102. }
    103. else
    104. {
    105. //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben
    106. //Wir lesen nun die erste Zeile des Caches aus (ID 0)
    107. cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
    108. cache_get_value_name_int(0, "Adminlevel", PlayerInfo[playerid][pAdminlevel]);
    109. cache_get_value_name_int(0, "Money", PlayerInfo[playerid][pMoney]);
    110. cache_get_value_name_int(0, "Fraktion", PlayerInfo[playerid][pFraktion]);
    111. cache_get_value_name_int(0, "Frank", PlayerInfo[playerid][pFrank]);
    112. PlayerInfo[playerid][pLoggedIn] = true;
    113. SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt.");
    114. GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
    115. }
    116. return 1;
    117. }
    118. public OnPlayerSpawn(playerid)
    119. {
    120. return 1;
    121. }
    122. public OnPlayerDeath(playerid, killerid, reason)
    123. {
    124. return 1;
    125. }
    126. public OnVehicleSpawn(vehicleid)
    127. {
    128. return 1;
    129. }
    130. public OnVehicleDeath(vehicleid, killerid)
    131. {
    132. return 1;
    133. }
    134. public OnPlayerText(playerid, text[])
    135. {
    136. return 1;
    137. }
    138. public OnPlayerCommandText(playerid, cmdtext[])
    139. {
    140. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    141. {
    142. // Do something here
    143. return 1;
    144. }
    145. return 0;
    146. }
    147. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    148. {
    149. return 1;
    150. }
    151. public OnPlayerExitVehicle(playerid, vehicleid)
    152. {
    153. return 1;
    154. }
    155. public OnPlayerStateChange(playerid, newstate, oldstate)
    156. {
    157. return 1;
    158. }
    159. public OnPlayerEnterCheckpoint(playerid)
    160. {
    161. return 1;
    162. }
    163. public OnPlayerLeaveCheckpoint(playerid)
    164. {
    165. return 1;
    166. }
    167. public OnPlayerEnterRaceCheckpoint(playerid)
    168. {
    169. return 1;
    170. }
    171. public OnPlayerLeaveRaceCheckpoint(playerid)
    172. {
    173. return 1;
    174. }
    175. public OnRconCommand(cmd[])
    176. {
    177. return 1;
    178. }
    179. public OnPlayerRequestSpawn(playerid)
    180. {
    181. return 1;
    182. }
    183. public OnObjectMoved(objectid)
    184. {
    185. return 1;
    186. }
    187. public OnPlayerObjectMoved(playerid, objectid)
    188. {
    189. return 1;
    190. }
    191. public OnPlayerPickUpPickup(playerid, pickupid)
    192. {
    193. return 1;
    194. }
    195. public OnVehicleMod(playerid, vehicleid, componentid)
    196. {
    197. return 1;
    198. }
    199. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    200. {
    201. return 1;
    202. }
    203. public OnVehicleRespray(playerid, vehicleid, color1, color2)
    204. {
    205. return 1;
    206. }
    207. public OnPlayerSelectedMenuRow(playerid, row)
    208. {
    209. return 1;
    210. }
    211. public OnPlayerExitedMenu(playerid)
    212. {
    213. return 1;
    214. }
    215. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    216. {
    217. return 1;
    218. }
    219. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    220. {
    221. return 1;
    222. }
    223. public OnRconLoginAttempt(ip[], password[], success)
    224. {
    225. return 1;
    226. }
    227. public OnPlayerUpdate(playerid)
    228. {
    229. return 1;
    230. }
    231. public OnPlayerStreamIn(playerid, forplayerid)
    232. {
    233. return 1;
    234. }
    235. public OnPlayerStreamOut(playerid, forplayerid)
    236. {
    237. return 1;
    238. }
    239. public OnVehicleStreamIn(vehicleid, forplayerid)
    240. {
    241. return 1;
    242. }
    243. public OnVehicleStreamOut(vehicleid, forplayerid)
    244. {
    245. return 1;
    246. }
    247. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    248. {
    249. if(dialogid == DIALOG_REGISTER)
    250. {
    251. //Spieler hat Abbrechen gewählt
    252. if(!response) return Kick(playerid);
    253. //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat
    254. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen");
    255. //Wenn alles passt wird der Spieler in der Datenbank angelegt
    256. //Als Verschlüsselung für das Passwort wird MD5 verwendet
    257. new query[256];
    258. mysql_format(handle, query, sizeof(query), "INSERT INTO users (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pName], inputtext);
    259. //Das Query wird abgesendet und die playerid an OnUserRegister übergeben
    260. mysql_pquery(handle, query, "OnUserRegister", "d", playerid);
    261. return 1;
    262. }
    263. if(dialogid == DIALOG_LOGIN)
    264. {
    265. //Spieler hat Abbrechen gewählt
    266. if(!response) return Kick(playerid);
    267. //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat
    268. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen");
    269. //Wenn alles passt wird die Datenbank ausgelesen
    270. new query[256];
    271. mysql_format(handle, query, sizeof(query), "SELECT * FROM users WHERE name = '%e' AND password = MD5('%e')", PlayerInfo[playerid][pName], inputtext);
    272. //Das Query wird abgesendet und die playerid an OnUserLogin übergeben
    273. mysql_pquery(handle, query, "OnUserLogin", "d", playerid);
    274. return 1;
    275. }
    276. return 0;
    277. }
    278. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    279. {
    280. return 1;
    281. }
    282. stock MySQL_SetupConnection(ttl = 3)
    283. {
    284. print("[MySQL] Verbindungsaufbau...");
    285. //mysql_log(); //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren
    286. handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    287. //Prüfen und gegebenenfalls wiederholen
    288. if(mysql_errno(handle) != 0)
    289. {
    290. //Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll
    291. if(ttl > 1)
    292. {
    293. //Versuche erneut eine Verbindung aufzubauen
    294. print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    295. printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
    296. return MySQL_SetupConnection(ttl-1);
    297. }
    298. else
    299. {
    300. //Abbrechen und Server schließen
    301. print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    302. print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
    303. print("[MySQL] Der Server wird heruntergefahren.");
    304. return SendRconCommand("exit");
    305. }
    306. }
    307. printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
    308. return 1;
    309. }
    310. stock SaveUserStats(playerid)
    311. {
    312. //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
    313. if(!PlayerInfo[playerid][pLoggedIn]) return 1;
    314. //Ansonsten speichere sie
    315. new query[256];
    316. mysql_format(handle, query, sizeof(query), "UPDATE users SET level = '%d', money = '%d', kills = '%d', deaths = '%d' WHERE id = '%d'",
    317. PlayerInfo[playerid][pAdminlevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pFraktion], PlayerInfo[playerid][pFrank], PlayerInfo[playerid][p_id]);
    318. //Das Query wird abgesendet
    319. mysql_pquery(handle, query);
    320. return 1;
    321. }
    Alles anzeigen




  • Folgender Neuer Fehler:

    [22:04:29] [plugins/mysql] error #1364 while executing query "INSERT INTO accounts (name, password) VALUES ('teso', MD5('test'))": Field 'id' doesn't have a default value


    Script compailt ohne fehler:

    Hier der Code:
    Spoiler anzeigen

    Quellcode

    1. #include <a_samp>
    2. #include <a_mysql>
    3. //Datenbankinformation
    4. #define MYSQL_HOST "127.0.0.1" //IP Adresse des MYSQL Server
    5. #define MYSQL_USER "root" //Benutzername dder angemelet wird
    6. #define MYSQL_PASS "Gr489zp4gl7Loc7thuu4Klom19pom" //password des benutzers
    7. #define MYSQL_DBSE "samp" //Name der Dantenbank
    8. new MySQL:handle; //Die Connection-Handlem über die wir später auf die Tabellen der Datenbank zugreiffen
    9. //FORWARD:
    10. forward OnUserCheck(playerid);
    11. forward OnUserRegister(playerid);
    12. forward OnUserLogin(playerid);
    13. //DIALOGE:
    14. #define DIALOG_REGISTER 1
    15. #define DIALOG_LOGIN 2
    16. //ENUM:
    17. enum pDataEnum
    18. {
    19. p_id,
    20. bool:pLoggedIn,
    21. pName[MAX_PLAYER_NAME],
    22. pAdminlevel,
    23. pMoney,
    24. pFraktion,
    25. pFrank
    26. }
    27. new PlayerInfo[MAX_PLAYERS][pDataEnum];
    28. main()
    29. {
    30. print("\n----------------------------------");
    31. print(" MeinScript");
    32. print("----------------------------------\n");
    33. }
    34. public OnGameModeInit()
    35. {
    36. SetGameModeText("MeinScript");
    37. AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
    38. MySQL_SetupConnection();
    39. mysql_log();
    40. return 1;
    41. }
    42. public OnGameModeExit()
    43. {
    44. mysql_close(handle);
    45. return 1;
    46. }
    47. public OnPlayerRequestClass(playerid, classid)
    48. {
    49. SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
    50. SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
    51. SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
    52. if(!PlayerInfo[playerid][pLoggedIn])
    53. {
    54. new query[127];
    55. mysql_format(handle,query,sizeof(query), "SELECT id From accounts WHERE name = '%e'",PlayerInfo[playerid][pName]);
    56. mysql_pquery(handle,query, "OnUserCheck","d",playerid);
    57. }
    58. return 1;
    59. }
    60. public OnPlayerConnect(playerid)
    61. {
    62. PlayerInfo[playerid][p_id] =0;
    63. PlayerInfo[playerid][pLoggedIn] = false;
    64. PlayerInfo[playerid][pAdminlevel] = 0;
    65. PlayerInfo[playerid][pMoney] = 0;
    66. PlayerInfo[playerid][pFraktion] =0;
    67. PlayerInfo[playerid][pFrank] = 0;
    68. GetPlayerName(playerid, PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
    69. return 1;
    70. }
    71. public OnPlayerDisconnect(playerid, reason)
    72. {
    73. //Speichere den Spieler wenn er der Server verlässt
    74. SaveUserStats(playerid);
    75. return 1;
    76. }
    77. public OnUserCheck(playerid)
    78. {
    79. new rows;
    80. cache_get_row_count(rows);
    81. if(rows == 0)
    82. {
    83. ShowPlayerDialog(playerid,DIALOG_REGISTER, DIALOG_STYLE_PASSWORD,"Registraiton", "Bitte registriere dich:","Ok","Abbrechen");
    84. }
    85. else
    86. {
    87. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung","Bitte Logge dich ein:", "Ok", "Abbrechen");
    88. }
    89. return 1;
    90. }
    91. public OnUserRegister(playerid)
    92. {
    93. //Der Spieler wurde in die Datenbank eingetragen, es wird die id ausgelesen
    94. PlayerInfo[playerid][p_id] = cache_insert_id();
    95. PlayerInfo[playerid][pLoggedIn] = true;
    96. SendClientMessage(playerid, 0x00FF00FF, "[Konto] Registration erfolgreich.");
    97. return 1;
    98. }
    99. public OnUserLogin(playerid)
    100. {
    101. //Query wurde ausgeführt und das Ergebnis im Cache gespeichert
    102. new rows;
    103. cache_get_row_count(rows);
    104. if(rows == 0)
    105. {
    106. //Der Spieler hat ein falsches Passwort eingegeben
    107. ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Falsches Passwort!", "Ok", "Abbrechen");
    108. }
    109. else
    110. {
    111. //Es existiert ein Ergebnis, das heißt der Spieler hat das richtige Passwort eingegeben
    112. //Wir lesen nun die erste Zeile des Caches aus (ID 0)
    113. cache_get_value_name_int(0, "id", PlayerInfo[playerid][p_id]);
    114. cache_get_value_name_int(0, "adminlevel", PlayerInfo[playerid][pAdminlevel]);
    115. cache_get_value_name_int(0, "money", PlayerInfo[playerid][pMoney]);
    116. cache_get_value_name_int(0, "Fraktion", PlayerInfo[playerid][pFraktion]);
    117. cache_get_value_name_int(0, "Frank", PlayerInfo[playerid][pFrank]);
    118. PlayerInfo[playerid][pLoggedIn] = true;
    119. SendClientMessage(playerid, 0x00FF00FF, "[Konto] Eingeloggt.");
    120. GivePlayerMoney(playerid, PlayerInfo[playerid][pMoney]);
    121. }
    122. return 1;
    123. }
    124. public OnPlayerSpawn(playerid)
    125. {
    126. return 1;
    127. }
    128. public OnPlayerDeath(playerid, killerid, reason)
    129. {
    130. return 1;
    131. }
    132. public OnVehicleSpawn(vehicleid)
    133. {
    134. return 1;
    135. }
    136. public OnVehicleDeath(vehicleid, killerid)
    137. {
    138. return 1;
    139. }
    140. public OnPlayerText(playerid, text[])
    141. {
    142. return 1;
    143. }
    144. public OnPlayerCommandText(playerid, cmdtext[])
    145. {
    146. if (strcmp("/mycommand", cmdtext, true, 10) == 0)
    147. {
    148. // Do something here
    149. return 1;
    150. }
    151. return 0;
    152. }
    153. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    154. {
    155. return 1;
    156. }
    157. public OnPlayerExitVehicle(playerid, vehicleid)
    158. {
    159. return 1;
    160. }
    161. public OnPlayerStateChange(playerid, newstate, oldstate)
    162. {
    163. return 1;
    164. }
    165. public OnPlayerEnterCheckpoint(playerid)
    166. {
    167. return 1;
    168. }
    169. public OnPlayerLeaveCheckpoint(playerid)
    170. {
    171. return 1;
    172. }
    173. public OnPlayerEnterRaceCheckpoint(playerid)
    174. {
    175. return 1;
    176. }
    177. public OnPlayerLeaveRaceCheckpoint(playerid)
    178. {
    179. return 1;
    180. }
    181. public OnRconCommand(cmd[])
    182. {
    183. return 1;
    184. }
    185. public OnPlayerRequestSpawn(playerid)
    186. {
    187. return 1;
    188. }
    189. public OnObjectMoved(objectid)
    190. {
    191. return 1;
    192. }
    193. public OnPlayerObjectMoved(playerid, objectid)
    194. {
    195. return 1;
    196. }
    197. public OnPlayerPickUpPickup(playerid, pickupid)
    198. {
    199. return 1;
    200. }
    201. public OnVehicleMod(playerid, vehicleid, componentid)
    202. {
    203. return 1;
    204. }
    205. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
    206. {
    207. return 1;
    208. }
    209. public OnVehicleRespray(playerid, vehicleid, color1, color2)
    210. {
    211. return 1;
    212. }
    213. public OnPlayerSelectedMenuRow(playerid, row)
    214. {
    215. return 1;
    216. }
    217. public OnPlayerExitedMenu(playerid)
    218. {
    219. return 1;
    220. }
    221. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
    222. {
    223. return 1;
    224. }
    225. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    226. {
    227. return 1;
    228. }
    229. public OnRconLoginAttempt(ip[], password[], success)
    230. {
    231. return 1;
    232. }
    233. public OnPlayerUpdate(playerid)
    234. {
    235. return 1;
    236. }
    237. public OnPlayerStreamIn(playerid, forplayerid)
    238. {
    239. return 1;
    240. }
    241. public OnPlayerStreamOut(playerid, forplayerid)
    242. {
    243. return 1;
    244. }
    245. public OnVehicleStreamIn(vehicleid, forplayerid)
    246. {
    247. return 1;
    248. }
    249. public OnVehicleStreamOut(vehicleid, forplayerid)
    250. {
    251. return 1;
    252. }
    253. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    254. {
    255. if(dialogid == DIALOG_REGISTER)
    256. {
    257. //Spieler hat Abbrechen gewählt
    258. if(!response) return Kick(playerid);
    259. //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat
    260. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_PASSWORD, "Registration", "Bitte registriere Dich:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen");
    261. //Wenn alles passt wird der Spieler in der Datenbank angelegt
    262. //Als Verschlüsselung für das Passwort wird MD5 verwendet
    263. new query[256];
    264. mysql_format(handle, query, sizeof(query), "INSERT INTO accounts (name, password) VALUES ('%e', MD5('%e'))", PlayerInfo[playerid][pName], inputtext);
    265. //Das Query wird abgesendet und die playerid an OnUserRegister übergeben
    266. mysql_pquery(handle, query, "OnUserRegister", "d", playerid);
    267. return 1;
    268. }
    269. if(dialogid == DIALOG_LOGIN)
    270. {
    271. //Spieler hat Abbrechen gewählt
    272. if(!response) return Kick(playerid);
    273. //Wenn der Spieler kein, oder ein zu kurzes, Passwort eingegeben hat
    274. if(strlen(inputtext) < 3) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, "Anmeldung", "Bitte logge Dich ein:\n{FF0000}Mindestens 3 Zeichen!", "Ok", "Abbrechen");
    275. //Wenn alles passt wird die Datenbank ausgelesen
    276. new query[256];
    277. mysql_format(handle, query, sizeof(query), "SELECT * FROM accounts WHERE name = '%e' AND password = MD5('%e')", PlayerInfo[playerid][pName], inputtext);
    278. //Das Query wird abgesendet und die playerid an OnUserLogin übergeben
    279. mysql_pquery(handle, query, "OnUserLogin", "d", playerid);
    280. return 1;
    281. }
    282. return 0;
    283. }
    284. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
    285. {
    286. return 1;
    287. }
    288. stock MySQL_SetupConnection(ttl = 3)
    289. {
    290. print("[MySQL] Verbindungsaufbau...");
    291. //mysql_log(); //<- Kommentar vor mysql_log entfernen um den MySQL Debug-Modus zu aktivieren
    292. handle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DBSE);
    293. //Prüfen und gegebenenfalls wiederholen
    294. if(mysql_errno(handle) != 0)
    295. {
    296. //Fehler im Verbindungsaufbau, prüfe ob ein weiterer Versuch gestartet werden soll
    297. if(ttl > 1)
    298. {
    299. //Versuche erneut eine Verbindung aufzubauen
    300. print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    301. printf("[MySQL] Starte neuen Verbindungsversuch (TTL: %d).", ttl-1);
    302. return MySQL_SetupConnection(ttl-1);
    303. }
    304. else
    305. {
    306. //Abbrechen und Server schließen
    307. print("[MySQL] Es konnte keine Verbindung zur Datenbank hergestellt werden.");
    308. print("[MySQL] Bitte prüfen Sie die Verbindungsdaten.");
    309. print("[MySQL] Der Server wird heruntergefahren.");
    310. return SendRconCommand("exit");
    311. }
    312. }
    313. printf("[MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: %d", _:handle);
    314. return 1;
    315. }
    316. stock SaveUserStats(playerid)
    317. {
    318. //Wenn der Spieler nicht eingeloggt ist, dann speichere seine Statistiken nicht
    319. if(!PlayerInfo[playerid][pLoggedIn]) return 1;
    320. //Ansonsten speichere sie
    321. new query[256];
    322. mysql_format(handle, query, sizeof(query), "UPDATE accounts SET adminlevel = '%d', money = '%d', Franktion = '%d', Frank = '%d' WHERE id = '%d'",
    323. PlayerInfo[playerid][pAdminlevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pFraktion], PlayerInfo[playerid][pFrank], PlayerInfo[playerid][p_id]);
    324. //Das Query wird abgesendet
    325. mysql_pquery(handle, query);
    326. return 1;
    327. }
    Alles anzeigen


  • Du hast in deiner Tabelle accounts ein Feld Namens id. Du übergibst aber keinen Wert dafür in deiner Query.
    Ich gehe davon aus, dass id dein Primary Key sein soll, in diesem Fall hast du wahrscheinlich vergessen den Primary Key auf autoincrement zu setzen. Bedeutet dein DBMS zählt einfach von 0 hoch in deiner Spalte id, bei jedem neuen Eintrag. Die Änderung kannst du einfach in phpmyadmin machen, welches du wahrscheinlich benutzt. Google kann dir weiterhelfen, falls du nicht weist wo das geht.
  • @[PX]Stone

    Hier aus der Console die Infromation:
    Spoiler anzeigen

    C-Quellcode

    1. ----------
    2. Loaded log file: "server_log.txt".
    3. ----------
    4. SA-MP Dedicated Server
    5. ----------------------
    6. v0.3.7-R2, (C)2005-2015 SA-MP Team
    7. [22:47:31] filterscripts = "" (string)
    8. [22:47:31]
    9. [22:47:31] Server Plugins
    10. [22:47:31] --------------
    11. [22:47:31] Loading plugin: mysql
    12. [22:47:31] >> plugin.mysql: R41-4 successfully loaded.
    13. [22:47:31] Loaded.
    14. [22:47:31] Loaded 1 plugins.
    15. [22:47:32]
    16. [22:47:32] Filterscripts
    17. [22:47:32] ---------------
    18. [22:47:32] Loaded 0 filterscripts.
    19. [22:47:32] [MySQL] Verbindungsaufbau...
    20. [22:47:32] [MySQL] Die Verbindung zur Datenbank wurde erfolgreich hergestellt! Handle: 1
    21. [22:47:32]
    22. ----------------------------------
    23. [22:47:32] MeinScript
    24. [22:47:32] ----------------------------------
    25. [22:47:32] Number of vehicle models: 0
    26. [22:47:53] [connection] 127.0.0.1:60131 requests connection cookie.
    27. [22:47:54] [connection] incoming connection: 127.0.0.1:60131 id: 0
    28. [22:47:54] [join] teso has joined the server (0:127.0.0.1)
    29. [22:48:02] [part] teso has left the server (0:1)
    30. [22:48:23] [connection] 127.0.0.1:60143 requests connection cookie.
    31. [22:48:24] [connection] incoming connection: 127.0.0.1:60143 id: 0
    32. [22:48:24] [join] teso has joined the server (0:127.0.0.1)
    33. [22:49:24] [part] teso has left the server (0:1)
    Alles anzeigen

  • @[PX]Stone


    Das Registrieren/Einloggen geht jetzt.

    Nur frage ich mich warum er jetzt folgendes ausspuckt

    Quellcode

    1. [22:48:02] [plugins/mysql] error #1054 while executing query "UPDATE accounts SET adminlevel = '0', money = '0', Franktion = '0', Frank = '0' WHERE id = '1'": Unknown column 'Franktion' in 'field list'
    2. [22:48:26] [plugins/mysql] cache_get_value_name_int: value 'NULL' is not a number
    3. [22:48:26] [plugins/mysql] cache_get_value_name_int: value 'NULL' is not a number
    4. [22:48:26] [plugins/mysql] cache_get_value_name_int: value 'NULL' is not a number
    5. [22:48:26] [plugins/mysql] cache_get_value_name_int: value 'NULL' is not a number
    6. [22:49:24] [plugins/mysql] error #1054 while executing query "UPDATE accounts SET adminlevel = '0', money = '0', Franktion = '0', Frank = '0' WHERE id = '1'": Unknown column 'Franktion' in 'field list'