Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: mysqli problem
Forum PHP.pl > Forum > Przedszkole
pstefano
witam
Wlaśnie ucze się z książki php i MySQL Tworzenie stron WWW - Vademecum profesionalisty wydanie trzecie. Zarzymałem się na stronie 280 (jak ktoś to ma) ponieważ jeden skrypt mi nie działa a mianowice połączenie się z bazą nową metodą. Wiem że w wersji php5 są nowe biblioteki służące do łączenia sie z serwerem MySQL w wersjach 4 i wyższych czyli funkcja mysqli
i tu jest problem. Mi to nie działa ale wpierw napisze jak instaluje krasnala.
Wpierw instaluje wersje 2.7
Później KMySQL-4.1.11.exe
Włączam krasnala , zmieniam na php5.
Wyłączam krasnala.
Instaluje KPHP-5.0.4.exe.
i tu próbowałem zainstalować KApache-2.0.50.exe, ale przy włączaniu krasnala pojawiają się błedy, wieć bez tego. (jak ktoś wie czemu?)
i teraz pliki

skrypt sql bazy http://webmail.ztpnet.pl/~stefan/baza/ksiazkorama.sql

skrypt dodania przykladow ksiazki_insert.sql
szukaj ksiazki http://webmail.ztpnet.pl/~stefan/baza/szukaj.html

do wykonania http://webmail.ztpnet.pl/~stefan/baza/rezultaty.zip

czyli rezultaty.php
  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', 'root', 'krasnal', '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>



po poleceniu wyslij pojawia sie tylko tytul strony z h1 i nic wiecej, zadnych bledow, komunikatow, porpostu nic.
Z innej książki Tworzenie stron WWW php Larry Ullman nie ma tej metody, jest następująca:

  1. <?php
  2. $dbh=mysql_connect ("localhost", "nazwa_bazy", "haslo") or die ('nie moge cholera bo: ' . mysql_error());
  3. mysql_select_db ("naza_bazy");  
  4.  $zapytanie="SELECT * FROM tabela_jakas "; 
  5. if ($r = mysql_query($zapytanie)) {
  6.  while ($wiersz = mysql_fetch_array ($r)) {
  7.  
  8. }
  9. ?>
i ta metoda mi działa

Jesli są jakieś watpiwosci proszę zapytać.
Dziekuje za odpowiedź
Apo
Niewiem może czegoś nie kapłem ale np tu:
  1. <?php
  2. $wynik = $db->query($zapytanie);
  3. ?>

To skąd ci sie bierze -> skoro nie masz żadnej klasy ?
vieri_pl
Też mam tą książke, potrzebujesz php5 to po pierwsze, po drugie jak najnowszą wersje mysqla, po trzecie APO: klasa jest includowana

PS: Mi też ten skrypt nie działa !?
athabus
Wiesz co będę strzelał, ale może nie masz zainstalowanego rozszerzenia mysqli - w krasnlu nie jest ono chyba domyślnie dostępne - ten drugi skrypt korzysta z klasy mysql więc może dlatego ci działa. Błąd nie wyskakuje dlatego że przy inicjowaniu obiekut $db masz wytułumione błędy (ten znaczek @ powoduje żę nie wyświetlają się błędy) - usuń to zobaczysz czy to to

Generalnie to musisz doinstalować sobie mysqli samodzielnie

skryput nie sprawdzalem wiec nie wiem czy dziala
Ozzy
  1. <?php
  2. @ $db = new mysqli('localhost', 'root', 'krasnal', 'ksiazki');
  3. ?>

Wywal @ i zobacz co pisze.
pstefano
wywalilem i nic, ale juz to sobie przekształciłem na zwykły kod (bez mysqli) i działa. Ale i tak dzieki za pomoc

ps 9.01.06
Juz mi dziala musialem zinstalowac mysql-5.0.18,php-5-1-1,apache_1.3.34-win32-x86-no_src.exe, wszytsko skonfigurowac czyli w php.ini kilka fukcji wlaczyc najwaznieszja to chyba extension=php_mysqli.dll, zreszta znajdziecie to w tej ksiazce dodatek
Pozdrawiam
spinach76
  1. <?php
  2. // utworzenie krótkich nazw zmiennych
  3. $metoda_szukania=$_POST['metoda_szukania'];
  4. $wyrazenie=$_POST['wyrazenie'];
  5. if (!$metoda_szukania || !$wyrazenie)
  6. {
  7. echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.'; exit;
  8. }
  9. { 
  10. $metoda_szukania = addslashes($metoda_szukania);
  11. $wyrazenie = addslashes($wyrazenie);
  12. }
  13. $db = new mysqli("localhost", "nazwa uzytkownika", " wpisz tutaj haslo", "ksiazkorama");
  14. if (mysqli_connect_errno()) {
  15.  printf("D_u_p_a z tego: %sn", mysqli_connect_error());
  16.  exit();
  17. }
  18. $zapytanie = "select * from ksiazki where ".$metoda_szukania." like'%".$wyrazenie."%'";
  19. $wynik = $db ->query ($zapytanie);
  20. $ile_znalezionych = $wynik->num_rows;
  21. echo '<p>Ilość znalezionych pozycji: '. $ile_znalezionych.'</p>';
  22. for ($i=0; $i<$ile_znalezionych; $i++)
  23. {
  24. $wiersz = $wynik->fetch_assoc();
  25. echo '<p><strong>'.($i+1).'. Tytuł: ';
  26. echo stripslashes($wiersz['tytul']);
  27. echo '</strong><br />Autor: ';
  28. echo stripslashes($wiersz['autor']);
  29. echo '<br />ISBN: ';
  30. echo stripslashes($wiersz['isbn']);
  31. echo '<br />Cena: ';
  32. echo stripslashes($wiersz['cena']);
  33. echo '</p>';
  34. }
  35. $wynik->free();
  36. $db->close();
  37. ?>

[manual]Wklej sobie to i będzie działać winksmiley.jpg


-------------------------
Odkopywanie wątku z zeszłego roku questionmark.gif
To trochę przesada
~Cienki1980
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.