Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]PHP i MySql - nie działa insert
Forum PHP.pl > Forum > Przedszkole
pompio
Witam,
Calkowicie początkujący w temacie PHP i MySql.
Za poradnikiem jakimś znalezionym w sieci, napisałem coś takiego:
  1. <?php
  2.  
  3. DEFINE ('DB_USER', 'pietrek');
  4. DEFINE ('DB_PSWD', '*********');
  5. DEFINE ('DB_HOST', 'localhost');
  6. DEFINE ('DB_NAME', 'znajomi');
  7.  
  8. $dbcon = mysqli_connect(DB_HOST, DB_USER, DB_PSWD, DB_NAME);
  9.  
  10. if(!$dbcon) {
  11. die('ERROR');
  12. }
  13. echo "CONNECTED";
  14.  
  15.  
  16. ?>
  17.  

Połączenie działa.
Potem prościutki formularz, za pomocą którego chcialbym wpisywać rekordy.
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>INSERT DATA INTO DB</title>
  5. </head>
  6. <body>
  7.  
  8. <?php
  9.  
  10. if (isset($_POST['submitted'])) {
  11.  
  12. include('connect-mysql.php');
  13.  
  14. $imie = $_POST['imie'];
  15. $nazwisko = $_POST['nazwisko'];
  16. $telefon = $_POST['telefon'];
  17. $email = $_POST['email'];
  18. $data_urodzin = $_POST['data_urodzin'];
  19. $inne = $_POST['inne'];
  20.  
  21. $sqlinsert = "INSERT INTO kontakty (imie, nazwisko, telefon, email, data_urodzin, inne)
  22. VALUES ('$imie', '$nazwisko', '$telefon', '$email', '$data_urodzin', $inne)";
  23.  
  24. if (!mysqli_query($dbcon, $sqlinsert)) {
  25. die('ERROR INSERTING NEW KONTAKT');
  26. }
  27.  
  28. $newrecord = "1 REKORD DODANO DO BAZY";
  29.  
  30. }
  31.  
  32. ?>
  33.  
  34. <h1>Insert Data into KONTAKTY</h1>
  35.  
  36. <form method="post" action="insert-data.php">
  37. <input type="hidden" name="submitted" value="true" />
  38. <fieldset>
  39. <legend>Nowy kontakt</legend>
  40. <label>Imię: <input type="text" name="imie" /></label></br>
  41. <label>Nazwisko:<input type="text" name="nazwisko" /></label></br>
  42. <label>Telefon:<input type="text" name="telefon" /></label></br>
  43. <label>Email:<input type="text" name="email" /></label></br>
  44. <label>Urodziny:<input type="text" name="data_urodzin" /></label></br>
  45. <label>Inne:<input type="text" name="inne" /></label></br>
  46. </fieldset>
  47. </br>
  48. <input type="submit" value="DODAJ NOWY KONTAKT" />
  49. </form>
  50. <?php
  51.  
  52. echo $newrecord
  53.  
  54. ?>
  55.  
  56. </body>
  57. </html>


Nie dopisuje do bazy niczego, tylko wyświetla komunikat : ERROR INSERTING NEW KONTAKT.
Gdzie jest błąd?
Dodam tylko, że baza działa prawidłowo. Łączę się z nią za pomocą MySQL Worbench, phpmyadmin, oraz z terminala.
Pozdrawiam
viking
Zamiast die() -> printf("Errormessage: %s\n", $mysqli->error);

http://php.net/manual/pl/mysqli.error.php
Poradnik zezwala na SQL injection czyli jest do niczego. W stopce mam opis jak to zrobić za pomocą PDO.
pompio
Cytat(viking @ 9.09.2017, 14:47:41 ) *
Zamiast die() -> printf("Errormessage: %s\n", $mysqli->error);

http://php.net/manual/pl/mysqli.error.php
Poradnik zezwala na SQL injection czyli jest do niczego. W stopce mam opis jak to zrobić za pomocą PDO.


Dziękuję za błyskawiczną odpowiedź.
Jak wspomniałem jestem całkowicie zielony, początkujący.
Nie bardzo rozumiem.
Czy mam usunąć linijkę die(), i w to miejsce wstawić printf("Errormessage: %s\n", $mysqli->error);??
Czy tez co innego chciałeś mi przekazać?
viking
Chciałem ci przekazać że zamiast korzystać z bliżej nieokreślonych, niepoprawnych przykładów zajrzyj do dokumentacji gdzie masz najnowsze, działające przykłady - zarówno wyświetlania błędów jak i pobierania / zapisywania danych. Opis jak wyświetlić błąd jest zawarty w linku - razem z kodem. Patrz styl proceduralny bo akurat z rozpędu wkleiłem obiektowy.
emillo91
Sprawdź czy masz wszystkie znaczniki, czy nie brakuje nigdzie średników albo czy nazwy zmiennych są poprawne. Sprawdź też czy nie brakuje nigdzie znaków apostrofu
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.