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
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ć (IMG:style_emoticons/default/smile.gif)
Problemem jest skrypt który znalazłem (a sam nie umiem napisać (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/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 (IMG:style_emoticons/default/smile.gif)
Wystarczyło zmienić adres na: 127.0.0.1
Albo odblokować port w firewallu (IMG:style_emoticons/default/smile.gif)

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





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
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
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 (IMG:style_emoticons/default/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
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.
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
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
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ę ! (IMG:style_emoticons/default/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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 11:07