Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: PDO błąd w kodzie
Forum PHP.pl > Forum > Bazy danych > MySQL
alazakier
Mam problem z PDO. Wyskakuje mi błąd:
  1. Wystapil blad biblioteki PDO: SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'name' cannot be null



  1.  
  2. if(isset($_POST['dodaj_pomoc_drogowa'])){
  3. if(empty($_POST['nr_rej']) || empty($_POST['miasto']) || empty($_POST['address']) || empty($_POST['name']) || empty($_POST['haslo_3']) || empty($_POST['haslo_4'])){
  4.  
  5. }
  6. }
  7.  
  8. $lat= 0;
  9.  
  10. $lng =0;
  11.  
  12. $nip = $_SESSION['user_id'];
  13.  
  14. $haslo_3 = sha1($_POST['haslo_3']);
  15.  
  16. $nr_rej = $_POST['nr_rej'];
  17.  
  18. $miasto = $_POST['miasto'];
  19.  
  20. $nam = $_POST['name'];
  21.  
  22. $address = $_POST['address'];
  23.  
  24. $id = NULL;
  25.  
  26.  
  27. if($_POST['haslo_3'] != $_POST['haslo_4']){
  28. header("Location: index.php?error=9&page=dodaj-pomoc-drogowa");
  29. }
  30. try{
  31. $db ->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  32. $user1=$db ->Prepare("INSERT INTO `markers` VALUES ( ' ',:nip, :nam, :haslo_3, :address, :miasto, :lat, :lng, :nr_rej ) ");
  33. $user1 -> bindValue(":haslo_3", $haslo_3, PDO::PARAM_STR);
  34. $user1 ->bindValue(":nip", $nip, PDO::PARAM_STR);
  35. // $user1 ->bindValue(":id", $id, PDO::PARAM_INT);
  36. $user1 ->bindValue(":nam", $nam, PDO::PARAM_STR);
  37. $user1 ->bindValue(":miasto", $miasto, PDO::PARAM_STR);
  38. $user1 ->bindValue(":nr_rej", $nr_rej, PDO::PARAM_STR);
  39. $user1 ->bindValue(":lat", $lat, PDO::PARAM_STR);
  40. $user1 ->bindValue(":lng", $lng, PDO::PARAM_STR);
  41. $user1 ->bindValue(":address", $address, PDO::PARAM_STR);
  42. $user1 -> execute();
  43.  
  44.  
  45.  
  46.  
  47. if($user1 > 0)
  48. {
  49. echo 'Dodano: '.$user1.' rekordow';
  50. }
  51. else
  52. {
  53. echo 'Wystapil blad podczas dodawania rekordow!';
  54. }
  55.  
  56.  
  57. }
  58. catch(PDOException $e)
  59. {
  60. echo 'Wystapil blad biblioteki PDO: ' . $e->getMessage();
  61. }


A formularz to:

  1.  
  2.  
  3. <form action="dodaj.php" methods="post">
  4. <input type="text" name="nr_rej" placeholder="Numer Rejestracyjny (format: XX123456-Login)" class="form-control" required />
  5. <input type="text" name="miasto" placeholder="Miasto" class="form-control" required />
  6. <input type="text" name="address" placeholder="Ulica i numer budynku" class="form-control" required />
  7. <input type="text" name="name" placeholder="Nazwa auta" class="form-control" required />
  8. <input type="password" name="haslo_3" placeholder="Hasło" class="form-control" required />
  9. <input type="password" name="haslo_4" placeholder="Powtórz hasło" class="form-control" required />
  10. <input type="submit" name="dodaj_pomoc_drogowa" value="Dodaj samochód" class="btn btn-primary" />
  11. </form>


Macie jakieś sugestie i pomysły? Czy słowo "name" będące na liście zarezerwowanych może być problemem?
Z góry dziękuję.
Dla obcokrajowców
" Thank you from mountains"
trueblue
Nie "methods", a "method". Przez co zamiast metodą POST, formularz jest przesyłany GET (powinieneś to swoją drogą widzieć w pasku adresu).
Następnie Twój dziwnie zbudowany if sprawdzający poprawność danych przepuszcza żądanie (bo sprawdza czy w $_POST jest dodaj_pomoc_drogowa, której nie ma, bo nie masz $_POST). W $_POST nie masz też nam, które wsadzasz do kolumny name z wymagalnością na niepuste.
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.