database.inc 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. #include <YSI_Coding\y_hooks>
  2. static MySQL:s_MySQLHandle;
  3. forward OnMySQLConnected();
  4. forward OnMySQLPreClose();
  5. #if defined LOCALHOST
  6. #define MYSQL_HOST "localhost"
  7. #define MYSQL_USER "root"
  8. #define MYSQL_PASS ""
  9. #define MYSQL_DATA "gtastories"
  10. #else
  11. #define MYSQL_HOST "217.146.86.250"
  12. #define MYSQL_USER "db54987"
  13. #define MYSQL_PASS "EWH8vTI3cg"
  14. #define MYSQL_DATA "db54987"
  15. #endif
  16. hook OnGameModeInit()
  17. {
  18. print("MySQL database setting up...");
  19. new MySQLOpt: optionid = mysql_init_options();
  20. mysql_set_option(optionid, AUTO_RECONNECT, true);
  21. s_MySQLHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_DATA);
  22. if(s_MySQLHandle == MYSQL_INVALID_HANDLE || mysql_errno(s_MySQLHandle) != 0) print("MySQL failed to connect. Server shutting down...");
  23. else CallRemoteFunction("OnMySQLConnected", "");
  24. return 1;
  25. }
  26. hook OnGameModeExit()
  27. {
  28. print("Pre-Closing the database...");
  29. CallRemoteFunction("OnMySQLPreClose", "");
  30. mysql_close(s_MySQLHandle);
  31. return 1;
  32. }
  33. public OnMySQLConnected()
  34. {
  35. print("MySQL connection is successful.");
  36. return 1;
  37. }
  38. public OnMySQLPreClose()
  39. {
  40. print("MySQL connection has been closed.");
  41. return 1;
  42. }
  43. public OnQueryError(errorid, const error[], const callback[], const query[], MySQL:handle)
  44. {
  45. switch(errorid)
  46. {
  47. case 1136: printf("[MySQL] Error 1136 | Column count does not match value count => \"%s\"", query);
  48. case 1054: printf("[MySQL] Error 1054 | Invalid field name => \"%s\"", query);
  49. case 1065: printf("[MySQL] Error 1065 | Query was empty (variable's size too small?) => \"%s\" from \"%s\"", query, callback);
  50. case 1058: printf("[MySQL] Error 1058 | Column count doesn't match value count => \"%s\" from \"%s\"", query, callback);
  51. case 1203: printf("[MySQL] Error 1203 | User already has more than 'max_user_connections' active connections => \"%s\" from \"%s\"", query, callback);
  52. case 1045: printf("[MySQL] Error 1045 | Access denied");
  53. case ER_SYNTAX_ERROR: printf("[MySQL] Syntax Error => \"%s\"", query);
  54. default: printf("[MySQL] Error %d | Callback: %s | \"%s\"", errorid, callback, query);
  55. }
  56. return 1;
  57. }
  58. stock MySQL:MySQL_GetHandle()
  59. {
  60. return s_MySQLHandle;
  61. }