Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]php dodawanie wartosci do bazy danych
Forum PHP.pl > Forum > Przedszkole
Bullseye
Hej, zaczynam zabawę z programowaniem w C, i jako że chciałem dane z uC wysyłać do mojej bazy danych by potem na stronie www ładnie je przedstawić smile.gif
Problemem jest skrypt który znalazłem (a sam nie umiem napisać sad.gif ), mianowicie za każdym razem dostaje komunikat: "Connection failed: Connection refused"

skrypt poniżej:

  1. <?php
  2. $servername = "ADRES"; //Adres serwera MySQL
  3. $username = "NAZWA"; //Nazwa konta użytkownika MySQL
  4. $password = "HASLO"; //Hasło do konta użytkownika MySQL
  5. $dbname = "NAZWA"; //Nazwa bazy danych
  6.  
  7. $conn = new mysqli($servername, $username, $password, $dbname); //Utworzenie połączenia z MySQL
  8.  
  9. if ($conn->connect_error) { //Sprawdzenie połączenia z MySQL
  10. die("Connection failed: " . $conn->connect_error); //Wyświetlenie informacji o problemie z połączeniem
  11. }
  12.  
  13. $a = $_GET["a"]; //Odebranie danych wysłanych przez ESP
  14. $b = $_GET["b"]; //Odebranie danych wysłanych przez ESP
  15. $c = $_GET["c"];
  16. $d = $_GET["d"];
  17. $e = $_GET["e"];
  18.  
  19. $sql = "INSERT INTO DOM (wilgotnosc, tempOUT, odczuwalna, cisnienie, tempIN)
  20. VALUES ('$a', '$b', '$c', '$d', '$e')";
  21. //W pierwszej lini następuje zdefiniowanie nazwy tabeli oraz kolumn do których mają zostać dodane dane
  22. //a w drugiej definiowanie danych które zostaną dodane to tabeli
  23.  
  24. // Można to polecenie także zapisać w formie jednej lini ale polecam pozostać przy zapisie w dwóch liniach ponieważ jest bardziej przejrzysty
  25. // $sql = "INSERT INTO test (Dane1, Dane2) VALUES ('$a', '$b')";
  26.  
  27. if ($conn->query($sql) === TRUE) { //Sprawdzenie czy dane zostały poprawnie dodane do tabeli
  28. echo "Rekord zostal dodany poprawnie!"; //Wyświetlenie komunikatu o powodzeniu
  29. } else {
  30. echo "Error: " . $sql . "<br>" . $conn->error; //Wyświetlenie komunikatu o niepowodzeniu wraz z informacjami na temat błędu
  31. }
  32.  
  33. $conn->close(); //Zamknięcie połączenia z MySQL
  34. ?>


Dane oczywiscie do bazy danych podałem swoje smile.gif

W czym problem że nie chce dodać rekordu do bazy ?

Gamoń ze mnie, ustawiałem usilnie by połączenie było z zewnątrz a właczony był firewall blokujacy dostęp z zewnatrz do bazy danych smile.gif
Wystarczyło zmienić adres na: 127.0.0.1
Albo odblokować port w firewallu smile.gif
viking
W linii 16 masz SQL injection. http://fi2.php.net/manual/en/mysqli.prepare.php
Bullseye
Problemem był zły adres bazy danych smile.gif

ale teraz mam inny problem, z odczytaniem wartości w mojej bazie danych, ktoś coś podpowie ? Serwer zwraca HTTP ERROR 500

  1. <html>
  2. <head>
  3. <title>Tutorial</title>
  4. </head>
  5. <body>
  6. <?php
  7. $servername = "ADRES";
  8. $username = "NAZWA";
  9. $password = "HASLO";
  10. $dbname = "NAZWA";
  11. $conn = new mysqli($servername, $username, $password, $dbname);
  12. if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}
  13. $sql = "SELECT id, wilgotnosc, tempOUT, odczuwalna, cisnienie, tempIN, FROM DOM ORDER BY id DESC LIMIT 10000";
  14. $result = $conn->query($sql);
  15. if ($result->num_rows > 0) {
  16. echo '<table cellspacing="0" border="1" rules="rows" bordercolor="black">';
  17. echo '<tr>
  18. <td width="100px" bgcolor="silver" align="center">Numer:</td>
  19. <td width="100px" bgcolor="gray" align="center">Wilgotnosc:</td>
  20. <td width="100px" bgcolor="silver" align="center">Temperatura Zewnetrzna:</td>
  21. <td width="100px" bgcolor="gray" align="center">Temperatura Odczuwalna:</td>
  22. <td width="100px" bgcolor="silver" align="center">Cisnienie:</td>
  23. <td width="100px" bgcolor="gray" align="center">Temperatura Wewnatrz:</td>
  24. </tr>';
  25. while($row = $result->fetch_assoc()) {
  26. echo '<tr>
  27. <td bgcolor="silver" align="center">' . $row["id"]. '</td>
  28. <td bgcolor="gray" align="center">' . $row["wilgotnosc"].'</td>
  29. <td bgcolor="silver" align="center">' . $row["tempOUT"]. "</td>
  30. <td bgcolor="gray" align="center">' . $row["odczuwalna"]. "</td>
  31. <td bgcolor="silver" align="center">' . $row["cisnienie"]. "</td>
  32. <td bgcolor="gray" align="center">' . $row["tempIN"]. "</td>
  33. </tr>";
  34. }
  35. echo "</table>";
  36. } else {
  37. echo "0 results";
  38. }
  39. $conn->close();
  40. ?>
  41. </body>
  42. </html>
  43.  
b4rt3kk
Sprawdź error log apacha i wklej tu błąd.
viking
Wiem bo w końcu napisałeś jednak na przyszłość zwróciłem uwagę na bardzo ważną kwestię zabezpieczeń. Poczytaj podpięty temat w którym jest m.in. jak włączyć błędy. Tu pewnie chodzi o przecinek w zapytaniu.
Bullseye
Taki serwerek prywatny raczej nikt nie zaatakuje, a nawet jeśli to stracę parę pomiarów bardziej dla zabawy niż potrzebnych, ale dzięki za radę ! smile.gif

Więc przy dwóch wartościach zbieranych z bazy wszystko działa jak należy, ale jak dodaje trzecią wartość to niestety brak reakcji, poniżej działający skrypt:

  1. <html>
  2. <head>
  3. <title>Tutorial</title>
  4. </head>
  5. <body>
  6. <?php
  7. $servername = "";
  8. $username = "";
  9. $password = "";
  10. $dbname = "";
  11. $conn = new mysqli($servername, $username, $password, $dbname);
  12. if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}
  13. $sql = "SELECT ID, wilgotnosc, tempOUT, odczuwalna FROM DOM ORDER BY id ASC LIMIT 100";
  14. $result = $conn->query($sql);
  15. if ($result->num_rows >= 0) {
  16. echo '<table cellspacing="0" border="1" rules="rows" bordercolor="black">';
  17. echo '<tr>
  18. <td width="100px" bgcolor="silver" align="center">ID:</td>
  19. <td width="100px" bgcolor="gray" align="center">Dane1:</td>
  20. <td width="100px" bgcolor="silver" align="center">Dane2:</td>
  21.  
  22. </tr>';
  23. while($row = $result->fetch_assoc()) {
  24. echo '<tr>
  25. <td bgcolor="silver" align="center">' . $row["ID"]. '</td>
  26. <td bgcolor="gray" align="center">' . $row["wilgotnosc"].'</td>
  27. <td bgcolor="silver" align="center">' . $row["tempOUT"]. "</td>
  28.  
  29. </tr>";
  30. }
  31. echo "</table>";
  32. } else {
  33. echo "0 results";
  34. }
  35. $conn->close();
  36. ?>
  37. </body>
  38. </html>


Kod błędu:
Kod
2018-07-21 09:37:26: (log.c.164) server started
2018-07-21 09:38:28: (mod_fastcgi.c.2695) FastCGI-stderr: PHP message: PHP Notice:  Undefined index: a in /var/www/html/add.php on line 13
2018-07-21 09:38:28: (mod_fastcgi.c.2695) FastCGI-stderr: PHP message: PHP Notice:  Undefined index: b in /var/www/html/add.php on line 14
2018-07-21 09:38:28: (mod_fastcgi.c.2695) FastCGI-stderr: PHP message: PHP Notice:  Undefined index: c in /var/www/html/add.php on line 15
2018-07-21 09:38:28: (mod_fastcgi.c.2695) FastCGI-stderr: PHP message: PHP Notice:  Undefined index: d in /var/www/html/add.php on line 16
2018-07-21 09:38:28: (mod_fastcgi.c.2695) FastCGI-stderr: PHP message: PHP Notice:  Undefined index: e in /var/www/html/add.php on line 17
2018-07-21 09:40:00: (mod_fastcgi.c.2695) FastCGI-stderr: PHP message: PHP Parse error:  syntax error, unexpected 'silver' (T_STRING), expecting ',' or ';' in /var/www/html/test.php on line 30
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.