Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd w kodzie?
Forum PHP.pl > Forum > PHP
Albinos
Witam, mam formularz, skrypt i baze danych ale gdy wypełnie formularz i dane mają zapisać się w bazie wyskakuje błąd:


Niby wszysko się zapisuje w bazie ale nie widać hasła no i te błędy mnie irytują.
Baza wygląda tak.




  1. <?php
  2.  
  3.  
  4.  
  5. class mysqli_db
  6. {
  7. public function __construct($host, $user, $password, $dbname)
  8. {
  9. // łączymy się z bazą danych
  10. IF(!$this->mysqli = new mysqli($host, $user, $password))
  11. {
  12. $this->error = true;
  13. // W przypadku niepowodzenia połączenia wygeneruj wyjątek
  14. throw new Exception('Błąd Połączenia z Bazą Danych - '.$this->mysqli->error, $this->mysqli->errno);
  15. }
  16. // wybieramy bazÄ™ danych
  17. IF(!$this->mysqli->select_db($dbname))
  18. {
  19. $this->error = true;
  20. // W przypadku niepowodzenia wybrania bazy wygeneruj wyjÄ…tek
  21. throw new Exception('Nie można wybrać bazy danych - '.$this->mysqli->error, $this->mysqli->errno);
  22. }
  23. // ustawiamy "tryb" transakcji dla tabel InnoDB
  24. $this->mysqli->autocommit(false);
  25. $this->mysqli->query('SET AUTOCOMMIT = 0');
  26. $this->mysqli->query('BEGIN');
  27. }
  28. // Wykonywanie zapytań nie zwracających wartości (nie-Select)
  29. public function query($query)
  30. {
  31. IF(!ereg('SELECT', $query) and !$this->error)
  32. {
  33. IF(!$result = $this->mysqli->query($query))
  34. {
  35. $this->error = true;
  36. throw new Exception('Błąd wykonania zapytania - ('.$query.') - '.$this->mysqli->error, $this->mysqli->errno);
  37. }
  38. else
  39. {
  40. return true;
  41. }
  42. }
  43. }
  44. // Zapytania z SELECT zwrĂłcÄ… nam od razu tablicÄ™ asocjacyjnÄ… z wynikami
  45. public function query_select($query)
  46. {
  47. IF(!$this->error)
  48. {
  49. IF(!$result = $this->mysqli->query($query))
  50. {
  51. $this->error = true;
  52. throw new Exception('Błąd wykonania zapytania - ('.$query.') - '.$this->mysqli->error, $this->mysqli->errno);
  53. }
  54. while($row = $result->fetch_assoc())
  55. {
  56. $return[] = $row;
  57. }
  58. unset($result);
  59. unset($row);
  60. return $return;
  61. }
  62. }
  63. // ID pola autoincrement uĹĽyte w ostatnim zapytaniu INSERT
  64. public function insert_id()
  65. {
  66. return $this->mysqli->insert_id;
  67. }
  68. public function escape($string)
  69. {
  70. return $this->mysqli->real_escape_string($string);
  71. }
  72. // Destruktor, w przypadku błędów wszystkie zmiany będą cofnięte
  73. public function __destruct()
  74. {
  75. IF(!$this->error)
  76. {
  77. $this->mysqli->query('COMMIT');
  78. }
  79. else
  80. {
  81. $this->mysqli->query('ROLLBACK');
  82. }
  83. unset($this->mysqli);
  84. unset($this->error);
  85. }
  86. }
  87.  
  88. $nick=$_GET['nick'];
  89. $haslo=$_GET['haslo'];
  90. $sila=$_GET['sila'];
  91. $rzezba=$_GET['rzezba'];
  92. $zdrowie=$_GET['zdrowie'];
  93. $respect=$_GET['respect'];
  94.  
  95.  
  96. $ms = new mysqli_db('localhost', 'root', '', 'kox_manager');
  97. echo '<pre>';
  98.  
  99.  
  100. $suma=$_GET['sila']+$_GET['rzezba']+$_GET['zdrowie']+$_GET['respect'];
  101. if ($suma>40)
  102. {
  103. echo 'suma liczb musi być mniejsza od 40';
  104.  
  105.  
  106. }
  107. else
  108. {
  109. $ms->query("INSERT INTO `postac` (`Nick`, `Haslo`, `Sila`, `Rzezba`, `Zdrowie`, `Respect`) VALUES ('$nick', '$haslo', '$sila', '$rzezba', '$zdrowie', '$respect' )") ;
  110. }
  111.  
  112. ?>

CuteOne
1. $_GET['haslo'] nie istnieje.. prawdopodobnie literówka w formularzu
2. ereg jest oznaczony jako deprecated i nie powinno się go używać
3. brak zadeklarowanego $error.. dodaj przed __construct():
  1. public $error = null;

4. `Nick`, `Haslo`, `Sila`, `Rzezba`, `Zdrowie`, `Respect` w bazie są z małej litery i tak powinny być zapisywane
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.