Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]PHP i MySql - nie działa insert, Połączenie z bazą danych działa, polecenie Insert nie działa.
pompio
post 9.09.2017, 13:21:17
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.09.2017

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
viking
post 9.09.2017, 13:47:41
Post #2





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
pompio
post 9.09.2017, 15:14:33
Post #3





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 9.09.2017

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
viking
post 9.09.2017, 15:26:35
Post #4





Grupa: Zarejestrowani
Postów: 6 376
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


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.


--------------------
Go to the top of the page
+Quote Post
emillo91
post 11.09.2017, 17:32:35
Post #5





Grupa: Zarejestrowani
Postów: 129
Pomógł: 13
Dołączył: 29.03.2012

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 2.05.2025 - 05:05