Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL][PHP]php dodawanie wartosci do bazy danych, Connection failed: Connection refused
Bullseye
post 20.07.2018, 20:55:30
Post #1





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 10.01.2009

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


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

Ten post edytował Bullseye 20.07.2018, 22:59:45
Go to the top of the page
+Quote Post
viking
post 20.07.2018, 21:16:00
Post #2





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


W linii 16 masz SQL injection. http://fi2.php.net/manual/en/mysqli.prepare.php


--------------------
Go to the top of the page
+Quote Post
Bullseye
post 20.07.2018, 23:01:46
Post #3





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 10.01.2009

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


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.  
Go to the top of the page
+Quote Post
b4rt3kk
post 20.07.2018, 23:53:07
Post #4





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Sprawdź error log apacha i wklej tu błąd.


--------------------
Jeśli pomogłem, kliknij proszę 'pomógł'. Dzięki.
Go to the top of the page
+Quote Post
viking
post 21.07.2018, 05:04:18
Post #5





Grupa: Zarejestrowani
Postów: 6 365
Pomógł: 1114
Dołączył: 30.08.2006

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


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.


--------------------
Go to the top of the page
+Quote Post
Bullseye
post 21.07.2018, 06:52:14
Post #6





Grupa: Zarejestrowani
Postów: 19
Pomógł: 0
Dołączył: 10.01.2009

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


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


Ten post edytował Bullseye 21.07.2018, 08:40:58
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: 29.03.2024 - 00:56