Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nie działa funkcja mysql_query()
Forum PHP.pl > Forum > Przedszkole
uczeń php
Używam linuxa - dokładniej debiana (ubuntu 10.10) mam zainstalowaną wersję PHP Version 5.3.3-1ubuntu9.3 Apache/2.2.16 i mysql 5.1.49. Dodatkowo gdy wchodzę do phpmyadmina na dole pojawia się komunikat, że serwer jest pod ochroną Suhosina. I wszystko by się wydawało, że jest galcygal bo jak widać wszystko jest jak w najnowszych wersjach. Jednak nie działa mi funkcja mysql_query(), a tak poza nią to wszystko działa ok. Poniżej przedstawiam część kodu potwierdzającego, że wszystko jest ok
  1. <?php
  2. /*
  3.  * Created on 2011-02-24
  4.  *
  5.  * To change the template for this generated file go to
  6.  * Window - Preferences - PHPeclipse - PHP - Code Templates
  7.  */
  8. // połączenie z bazą danych
  9.  
  10. if(mysql_connect('127.0.0.1','root','password'))
  11. echo 'Udane połączenie z bazą danych';
  12. else
  13. echo 'Brak połączenia z bazą danych';
  14.  
  15. echo '<br />';
  16.  
  17. if(mysql_select_db('baza_faq'))
  18. {
  19. echo 'wybrana baza danych to: baza_faq';
  20. }
  21. else
  22. {
  23. echo 'wybraną błędną bazę danych';
  24. }
i tu komunikaty wyskakują poprawne : Udane połączenie z bazą danych i wybrana baza danych to: baza_faq.
  1. $sql="INSERT INTO `pytania` (`Tresc`, `data dodania`, `admin/użytkownik`) VALUES ('{$_POST['pytanie']}', '".date('Y-m-d')."','1');";
  2. print "<!--Zapytanie, $sql-->";
i teraz uwaga poprzez instrukcję print "<!--Zapytanie, $sql-->"; w źródle strony można zobaczyć zapytanie Insert zapytanie to nie zostaje wykonane przez mysql_query() exclamation.gif! ale jeśli w kleje to zapytanie Insert do okna sql w phpmyadminie to wtedy zapytanie Insert zostaje wykonane prawidłowo. No ale przecież nonstop nie będę wklejał zapytań sql do okna sql w phpmyadminie smile.gif
nospor
1) Nigdzie tu nie masz mysql_query() wiec trudno by ci działało
2) Zanim napiszesz następnego posta zapoznaj się z tematem:
Temat: Jak poprawnie zada pytanie
i zastosuj do wszytkich podanych tam porad. Potem wróć na forum
3) przenosze
uczeń php
1) Nigdzie tu nie masz mysql_query() wiec trudno by ci działało
Jak ja ma to rozumieć, że w nowszych wersjach php nie ma funkcji mysql_query() ? Przecież funkcja ta z mego doświadczenia odpowiada za wykonywanie poleceń sql na bazie danych. Czy ja może się mylę ?
Daiquiri
Mogę się tylko domyślać, że nospor mówił o Twoim kodzie wyżej.
uczeń php
Ten zapis jest na samym dole całego skryptu to chyba oczywiste
  1. $wykonaniesql=mysql_query($sql);
wookieb
Pokaż cały kod.
nospor
Oczywiste było również, że miałeś zapoznac sie z tematem do którego dostales linka i miales sie zastosować do podanych tam porad.

Czy może ty poprostu chcesz dostac zachętę w postaci zamknięcia tematu?
uczeń php
cały kod:
  1. <?php
  2. /*
  3.  * Created on 2011-02-24
  4.  *
  5.  * To change the template for this generated file go to
  6.  * Window - Preferences - PHPeclipse - PHP - Code Templates
  7.  */
  8.  
  9.  
  10. ini_set('display_errors','1');
  11.  
  12.  
  13. // połączenie z bazą danych
  14.  
  15. if(mysql_connect('127.0.0.1','root','password'))
  16. echo 'Udane połączenie z bazą danych';
  17. else
  18. echo 'Brak połączenia z bazą danych';
  19.  
  20. echo '<br />';
  21.  
  22. if(mysql_select_db('baza_faq'))
  23. {
  24. echo 'wybrana baza danych to: baza_faq';
  25. }
  26. else
  27. {
  28. echo 'wybraną błędną bazę danych';
  29. }
  30.  
  31.  
  32. // formularz do dodawania pytań
  33.  
  34. print '<center><form action="index.php" method="post">' .
  35. '<input type="text" name="pytanie">'.
  36. '<br /><input type="submit" name="zapis_pytania" value="dodaj pytanie">'.
  37. '</form></center>';
  38.  
  39.  
  40. if(isset($_POST['zapis_pytania'])) {
  41. $sql="INSERT INTO pytania (`Tresc`, `data dodania`, `admin/użytkownik`) VALUES ('{$_POST['pytanie']}', '".date('Y-m-d')."','1');";
  42. print "<!--Zapytanie, $sql-->";
  43. print_r($sql);
  44. $wykonaniesql=mysql_query($sql);
  45. $ilosc_wierszy = mysql_num_rows($wykonaniesql);
  46. }
  47.  
  48. // formularz do dodawania odpowiedzi
  49.  
  50. $zapytanie_odp = "SELECT * FROM `pytania`";
  51. mysql_query($zapytanie_odp);
  52. $wykonanie_zapytania = mysql_query($zapytanie_odp);
  53.  
  54. print '<center><form action="index.php" method="post">'.
  55. '<select name="pytanie">';
  56. while($rekord_pytania = mysql_fetch_array($wykonanie_zapytania))
  57. echo "<option value='{$rekord_pytania['Tresc']}'>{$rekord_pytania['Treść']}</option>";
  58. echo "<input typ='text' name='odpowiedz'>";
  59. echo "<input type='submit' name='wyslij_odpowiedz' value='Odpowiedź'>";
  60. echo "</form>";
  61. ?>
nospor
W linku co ci podalem miales cos o MYSQL_ERROR
Czemu tego nie wdrozyles?
wNogachSpisz
Ja tylko pozwole sobie zauważyć, że w linii:

  1. if(isset($_POST['zapis_pytania'])) {
  2. $sql="INSERT INTO pytania (`Tresc`, `data dodania`, `admin/użytkownik`) VALUES ('{$_POST['pytanie']}', '".date('Y-m-d')."','1');";

Jest potencjalnie błąd pozwalający na sql-injection.
wookieb
Już byłeś odsyłany do tematu "jak zadać poprawnie pytanie". SKoro się z nim nie zapoznałeś to my nie zapoznajemy się z twoimi problemami. Zamykam.
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.