Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MYSQL]Problem ze skryptem połączenia z MySQL
--Haczyk--
post 18.06.2008, 11:55:23
Post #1





Goście







W ksiażce Helionu PHP i MySQL. Tworzenie stron WWW. Vademecum profesjonalisty. Wydanie trzecie opisane jest połączenie i wysłanie zapytania do bazy danych MySQL. Jednak on nie dziala. Oto kod

  1. <html>
  2. <head>
  3. <title>"Książkorama"-Rezultaty wyszukiwania</title>
  4. </head>
  5. <body>
  6. <h1>"Książkorama"-Rezultaty wyszukiwania </h1>
  7. <?php
  8. // utworzenie krótkich nazw zmiennych
  9. $metoda_szukania=$_POST['metoda_szukania'];
  10. $wyrazenie=$_POST['wyrazenie'];
  11.  
  12. $wyrazenie = trim($wyrazenie);
  13.  
  14. if (!$metoda_szukania || !$wyrazenie)
  15. {
  16.  echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  17.  exit;
  18. }
  19.  
  20. {
  21. $metoda_szukania = addslashes($metoda_szukania);
  22. $wyrazenie = addslashes($wyrazenie);
  23. }
  24.  
  25. @ $db = new mysqli('localhost', 'ksiazkorama', 'ksiazkorama123', 'ksiazki');
  26.  
  27. if (mysqli_connect_errno())
  28. {
  29.  echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  30.  exit;
  31. }
  32.  
  33. $zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
  34. $wynik = $db->query($zapytanie);
  35.  
  36. $ile_znalezionych = $wynik->num_rows;
  37.  
  38. echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  39.  
  40. for ($i=0; $i <$ile_znalezionych; $i++)
  41. {
  42.  $wiersz = $wynik->fetch_assoc();
  43.  echo '<p><strong>'.($i+1).'. Tytuł: ';
  44.  echo stripslashes($wiersz['tytul']);
  45.  echo '</strong><br />Autor: ';
  46.  echo stripslashes($wiersz['autor']);
  47.  echo '<br />ISBN: ';
  48.  echo stripslashes($wiersz['isbn']);
  49.  echo '<br />Cena: ';
  50.  echo stripslashes($wiersz['cena']);
  51.  echo '</p>';
  52. }
  53.  
  54. $wynik->free();
  55. $db->close();
  56.  
  57. ?>
  58.  
  59. </body>
  60. </html>


Pokazuje sie tylko tytul i nic wiecej zadnzch komunikatow o bledzie (chyba ze usune malpe wtedz pokazuje sie blad Fatal error: Class 'mysqli' not found in * on line * )

Prosze o pomoc bo meczesie z tym juz pare dni i nic nie moge zrobic.

szukalem w google ale wszzstkie poradz ktore tam znalazlem nie dzialaja np. zebz usunac srednik w php.ini w odpowiednim miejscu

z gory dzieki
Go to the top of the page
+Quote Post
redelek
post 18.06.2008, 12:10:11
Post #2





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(-Haczyk- @ 18.06.2008, 10:55:23 ) *
Pokazuje sie tylko tytul i nic wiecej zadnzch komunikatow o bledzie (chyba ze usune malpe wtedz pokazuje sie blad Fatal error: Class 'mysqli' not found in * on line * )

Prosze o pomoc bo meczesie z tym juz pare dni i nic nie moge zrobic.

szukalem w google ale wszzstkie poradz ktore tam znalazlem nie dzialaja np. zebz usunac srednik w php.ini w odpowiednim miejscu

z gory dzieki


Rozumiem że masz poprawnie skonfigurowanego APACHE PHP i MySQL Lite ?
Bo to co napisałeś na samym końcu wygląda na to że nie może znaleźć klasy mysqli ?
Czy zanim się narobiłeś to zrobiłeś małe testy z połączeniem z MySQLi czy nie?
Zacznij od prostych rzeczy ( mam połączenie, brak połączenia, wybrałem bazę, nie mogę wybrać bazy itd)


Pozdro
Redelek

Pozdrawiam
Redelek

Ten post edytował redelek 18.06.2008, 12:10:51


--------------------
Pozdrawiam
Piotrek R
Go to the top of the page
+Quote Post
--Haczyk--
post 21.06.2008, 10:47:42
Post #3





Goście







taki kod działa:

  1. <?php
  2. // nawiazujemy polaczenie
  3. echo 'fff';
  4. $connection = mysql_connect('localhost', 'Kamil', 'Kamil') ;
  5. echo 'Udało się połączyć z serwerem!<br />';
  6. // nawiązujemy połączenie z bazą danych
  7. $db = @mysql_select_db('ksiazki', $connection)
  8. // w przypadku niepowodzenia wyświetlamy komunikat
  9. or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error());
  10. // połączenie nawiązane ;-)
  11. echo "Udało się połączyć z bazą dancych!";
  12. // zamykamy połączenie
  13. mysql_close($connection);
  14. // skrypt pochodzi ze strony www.kess.snug.pl
  15. ?>


ale kiedy wpisuje kod z pierwszego postu wyswietla sie

Fatal error: Class 'mysqli' not found in * on line *
Go to the top of the page
+Quote Post
maziak
post 21.06.2008, 10:59:11
Post #4





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

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


Hm, na poczatek proponuje zainstalowac jakis sprawdzony pakiecik apache mysql php z odpowiednimi wersjami, np WAMP. Jak to nie pomoże to bedziemy kombinować dalej.
Go to the top of the page
+Quote Post
--Haczyk--
post 21.06.2008, 11:02:41
Post #5





Goście







mam najnowsze wersje php mysql i apache, mysle ze dobrze skonf. po co instalowac nastepne?
Go to the top of the page
+Quote Post
maziak
post 21.06.2008, 11:12:48
Post #6





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

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


No mowiac krotko dlatego, że u mnie ten kod działa w najlepszym porządku. Czyli jednak nie najlepiej skonfigurowane. Błąd wyraznie wskazuje na brak klasy mysqli, ktora oczywiscie powinna sie znajdowac na swoim miejscu. Najszybszym sposobem dla upewnienia, zdaje sie zainstalowanie gotowego, skonfigurowanego i sprawdzonego pakietu.

Uczylem sie z tej samej książki nawiasem mówiac smile.gif
Go to the top of the page
+Quote Post
--Haczyk--
post 21.06.2008, 11:15:39
Post #7





Goście







kurcze nie usmiecha mi sie robic wszystko od poczatku. plik konfiguracyjny modyfikowalem juz przy okazji roznych problemow jak chociazby ten.i jest do mnie "dopasowany".
moglbys mi powiedziec co konkretnie zmienic w tym pliku albo odeslac mnie gdzies gdzie jest to opisane?
Go to the top of the page
+Quote Post
maziak
post 21.06.2008, 11:21:04
Post #8





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

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


Jak chcesz.
http://pl.php.net/manual/pl/book.mysqli.php
Go to the top of the page
+Quote Post
--Haczyk--
post 21.06.2008, 11:25:01
Post #9





Goście







kurcze duzo tego i jeszcze po ang. tongue.gif
nie mozna jakos krocej smile.gif
Go to the top of the page
+Quote Post
maziak
post 21.06.2008, 11:54:18
Post #10





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

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


Hm, w sumie to "Instalacja i konfiguracja" jest po polsku. A reszta Cię póki co nie interesuje.


Zobacz czy masz w swoim php.ini taka linijke :
extension=php_mysqli.dll

Jezeli jej nie ma, to ja dopisz. A jak jest poprzedzona srednikiem to go wywal.
Go to the top of the page
+Quote Post
--Haczyk--
post 21.06.2008, 12:13:04
Post #11





Goście







hm zgodnie z tym

By zainstalować rozszerzenie mysqli dla PHP należy użyć opcji konfiguracyjnej --with-mysqli=mysql_config_path/mysql_config, gdzie mysql_config_path wskazuje na ścieżkę dostępu do programu mysql_config, który występuje w wersjach MySQL powyżej 4.1." title="Zobacz w manualu PHP" target="_manual

mam w php.ini wpisac na koncu --with-mysqli=mysql_config_path/mysql_config i powinno dzialac tak??
Go to the top of the page
+Quote Post
erix
post 21.06.2008, 14:00:17
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Nie.

Nie kompilujesz php. Zrób tak, jak maziak napisał. No chyba, że pracujesz na Linuksie, to wtedy musisz rekompilować PHP.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
--Haczyk--
post 22.06.2008, 11:39:20
Post #13





Goście







dalej nie dziala ;/

PS. powiedzcie mi jak to jest? sciagam najnowsze standardowo skonfigorowane wersje a nie dzialaja mi takie podstawowe rzeczy i trzeba to modyfikować...
Go to the top of the page
+Quote Post
erix
post 22.06.2008, 12:08:00
Post #14





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A co w ogóle zrobiłeś, że "nie działa"?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
--Haczyk--
post 22.06.2008, 16:14:36
Post #15





Goście







no zrobiłem tak jak maziak napisał. usunalem srednik.
Go to the top of the page
+Quote Post
--Haczyk--
post 22.06.2008, 16:34:16
Post #16





Goście







o kurcze. dziala. przepraszam zle wpisalem. juz dziala. dziekuje Wam chłopaki
Go to the top of the page
+Quote Post
--Haczyk--
post 30.06.2008, 08:12:57
Post #17





Goście







mam nastepny problem. zmodyfikowalem troche ten skrypt..

  1. <?php
  2.  $metoda_szukania=$_POST['metoda_szukania'];
  3.  $wyrazenie=$_POST['wyrazenie'];
  4.  $wyrazenie = trim($wyrazenie);
  5.  if (!$metoda_szukania || !$wyrazenie)
  6. {
  7.  echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
  8.  exit;
  9. }
  10. {
  11.  $metoda_szukania = addslashes($metoda_szukania);
  12.  $wyrazenie = addslashes($wyrazenie);
  13. }
  14.  $db = new mysqli('localhost', 'iulili', 'iliill', 'bazabaza');
  15.  if (mysqli_connect_errno())
  16. {
  17.  echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  18.  exit;
  19. }
  20.  else
  21. {
  22.  echo 'Udało się połączyć z bazą danych.<br />';
  23. }
  24.  $zapytanie = "select * from bazabaza where ".$metoda_szukania." like '%".$wyrazenie."%'";
  25.  $wynik = $db->query($zapytanie);
  26.  $ile_znalezionych = $wynik->num_rows;  //linia 42
  27.  echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';
  28.  for ($i=0; $i <$ile_znalezionych; $i++)
  29. {
  30.  $wiersz = $wynik->fetch_assoc();
  31.  echo '<p><strong>'.($i+1).'. nazwa: ';
  32.  echo stripslashes($wiersz['nazwa']);
  33.  echo '</strong><br /> autor: ';
  34.  echo stripslashes($wiersz['autor']);
  35.  echo '</p>';
  36. }
  37.  $wynik->free();  //linia 53
  38.  $db->close();
  39. ?>


i wyskakuje

Udało się połączyć z bazą danych.

Notice: Trying to get property of non-object in ... on line 42

Ilość znalezionych pozycji:

Fatal error: Call to a member function free() on a non-object in ... on line 53

dodam ze autor to kolumna typu liczbowego
Go to the top of the page
+Quote Post
maziak
post 30.06.2008, 08:24:39
Post #18





Grupa: Zarejestrowani
Postów: 155
Pomógł: 17
Dołączył: 9.07.2007

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


Witaj ponownie smile.gif

Na pierwszy rzut oka zapytanie do bazy nic nie zwraca. Dlatego $wynik nie jest obiektem. Upewnij się, że to zapytanie cos zwraca (wklej do phpmyadmina albo cos takiego, tylko podmien oczywiscie zmienne na wartosci).

Ogolnie rzecz biorąc, odpowiedzi na to co oznaczja poszczegolne bledy i jak je pokonac - znacznie szybciej uzyskasz w googlach, niż na forum.
Go to the top of the page
+Quote Post
--Haczyk--
post 30.06.2008, 08:35:52
Post #19





Goście







dzieki udalo sie.

pomylilem nazwy smile.gif
Go to the top of the page
+Quote Post
--Haczyk--
post 30.06.2008, 08:49:02
Post #20





Goście







kurcze mam kolej ny problem tym razem ze wstawianiem rekordu. co w tym jest zle?

  1. <?php
  2. // utworzenie krótkich anzw zmiennych
  3. $tytul=$_POST['tytul'];
  4. $artysta=$_POST['autor'];
  5.  
  6. if (!$tytul || !$autor)
  7. {
  8.  echo 'Nie podano wszystkich potrzebnych danych.<br />'
  9. .'Wróć do poprzedniej strony i spróbuj ponownie.';
  10.  exit;
  11. }
  12.  
  13. else {echo 'ok';}
  14. {
  15. $tytul = addslashes($tytul);
  16. $artysta = addslashes($autor);
  17. }
  18.  
  19.  $db = new mysqli('localhost', 'fdgdf', 'grgrfggl', 'bazabaza');
  20.  
  21. if (mysqli_connect_errno())
  22. {
  23.  echo 'Błąd: : Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
  24.  exit;
  25. }
  26.  else {echo 'ok';}
  27. $zapytanie = "insert into tabela values (NULL, '".$tytul."', ".$autor.", 0, 0, 0, 0, NULL, 0)";
  28. $wynik = $db->query($zapytanie);
  29. if ($wynik)
  30. echo $db->affected_rows.' książka zapisana do bazy.';
  31. else { echo 'fgdfbgf';}
  32.  
  33.  
  34. ?>


zapytanie jest ok sprawdzalem. a autro jest typu liczbowego
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 18.07.2025 - 04:01