Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] i [mysql] łączenie się za pomocą mysqli
Forum PHP.pl > Forum > Przedszkole
Lejto
Mam php 5 i mysql 5 i ne działa mi połączenie przez mysqli

  1. <?php
  2. $mysqli = new mysqli("localhost", "my_user", "my_password", "world");
  3. ?>


Może trzeba ustawić coś w mysql? Pomurzcie
mild
Cytat("php.net")
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.

Jeśli chcesz zainstalować rozszerzenie mysql razem z rozszerzeniem mysqli musisz użyć tej samej biblioteki klienckiej w celu uniknięcia konfliktów.

Masz tak zrobione?
Lejto
nie a gdzie to trzeba wpisać?
mild
Przy instalacji oprogramowania na serwerze. Jest jakis powod dla ktorego koniecznie potrzebujesz mysqli?
mpps
a - podstawowe pytanie - na jakim systemie działa Ci serwer i baza?
jeśli na windzie, to może pomoże wrzucenie biblioteki libmysqli.dll do C:\WINDOWS\system32\

a poza tym napisz, czy się pojawia jakaś informacja, i jeśli tak, to jaka?
wtedy będzie wiadomo, czego Ci brakuje biggrin.gif
Lejto
powiec mi tylko gdzie wpisać
  1. <?php
  2. --with-mysqli=mysql_config_path/mysql_config, gdzie mysql_config_path
  3. ?>


serwer mam apache
KCG
U mnie pomogło tylko dopisanie extension=php_mysqli.dll w php.ini
Lejto
nic z tego nie działa a konktetnie chodzi mi o ten przykład:

plik głosoj.html
  1. <title>Ankieta</title>
  2. </head>
  3. <h1>Dodaj swój głos</h1>
  4. <p>Na kogo będziesz głosować w wyborach?</p>
  5. <form method=post action="pokaz_wyniki.php">
  6. <input type="radio" name="glos" value="Jan Kowalski">Jan Kowalski<br />
  7. <input type="radio" name="glos" value="Maria Nowak">Maria Nowak<br />
  8. <input type="radio" name="glos" value="Piotr Ziolkowski">Piotr Ziółkowski<br /><br />
  9. <input type="submit" value="Pokaż wyniki">
  10. </form>
  11. </body>
  12. </html>


plik pokaz wynik.php

  1. <?php
  2. /*********************************************
  3.   Zapytanie bazy danych odczytujące wynik ankiety
  4. *********************************************/
  5.  
  6. // pobranie głosu z formy
  7. $glos=$_REQUEST['glos'];
  8.  
  9. // zalogowanie w bazie danych
  10. if(!$bd_polacz=new mysqli('localhost', 'ankieta', 'ankieta', 'ankieta'))
  11. {
  12. echo 'Połączenie z bazą danych nieudane<br />';
  13. };
  14.  
  15. if(!empty($glos)) // jeżeli formularz został wypełniony, dodanie głosu
  16. {
  17. $glos=addslashes($glos);
  18. $zapytanie="update wyniki_ankiety
  19. set ilosc_glosow = ilosc_glosow + 1
  20. where kandydat = '$glos'";
  21. if(!($wynik=@$bd_polacz->query($zapytanie)))
  22. {
  23. echo 'Połączenie z bazą danych nieudane<br />';
  24. }
  25. };
  26.  
  27. // pobranie aktualnych wyników ankiety, niezależnie od faktu głosowania
  28. $zapytanie='select * from wyniki_ankiety';
  29. if(!($wynik=@$bd_polacz->query($zapytanie)))
  30. {
  31. echo 'Połączenie z bazą danych nieudane<br />';
  32. };
  33. $ilosc_kandydatow=$wynik->num_rows;
  34.  
  35. // obliczenie całkowitej liczby głosów
  36. $ilosc_glosow=0;
  37. while ($rzad=$wynik->fetch_object())
  38. {
  39. $ilosc_glosow+=$rzad->ilosc_glosow;
  40. }
  41. $wynik->data_seek(0); // wyzerowanie wskaźnika wyniku
  42.  
  43. /*********************************************
  44.   Początkowe obliczenia wykresu
  45. *********************************************/
  46. // ustawienie stałych
  47. putenv('GDFONTPATH=C:WINDOWSFonts');
  48. $szerokosc=500;  //szerokosc obrazka w pikselach - ta zmieści się w rozdzielczości 640x480
  49. $lewy_margines=50; // miejsce pozostawiane po lewej stronie obrazka
  50. $prawy_margines=50; // to samo dla strony prawej
  51. $wysokosc_slupka=40;
  52. $odleglosc_slupkow=$wysokosc_slupka/2;
  53. $czcionka='arial';
  54. $rozmiar_tytulu=16; // w stopniach
  55. $rozmiar_podstawowy=12; // w stopniach
  56. $rozmiar_maly=12; // w stopniach
  57. $wciecie_tekstu=10; //odległość lewych etykiet tekstowych od lewej krawędzi obrazka
  58.  
  59. // ustawienie początkowego punktu rysowania
  60. $x=$lewy_margines+70; //miejsce narysowania bazy wykresu
  61. $y=50; //to samo
  62. $jednostka_slupka=($szerokosc-($x+$prawy_margines))/100; //jeden "stopień" wykresu
  63.  
  64. // obliczenie wysokości wykresu - słupki plus przerwy plus pewien margines
  65. $wysokosc=$ilosc_kandydatow*($wysokosc_slupka+$odleglosc_slupkow)+50;
  66.  
  67. /*********************************************
  68.   Konfiguracja podstawowego obrazka
  69. *********************************************/
  70. // stworzenie pustego kadru
  71. $ob=imagecreateTrueColor($szerokosc, $wysokosc);
  72.  
  73. // Przydzielenie kolorów
  74. $bialy=ImageColorAllocate($ob,255,255,255);
  75. $niebieski=ImageColorAllocate($ob,0,64,128);
  76. $czarny=ImageColorAllocate($ob,0,0,0);
  77. $rozowy=ImageColorAllocate($ob,255,78,243);
  78.  
  79. $kolor_tekstu=$czarny;
  80. $kolor_procentow=$czarny;
  81. $kolor_tla=$bialy;
  82. $kolor_linii=$czarny;
  83. $kolor_slupka=$niebieski;
  84. $kolor_liczb=$rozowy;
  85.  
  86. // stworzenie "kadru" do rysowania
  87. ImageFilledRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_tla);
  88.  
  89. // narysowanie konturów wokół kadru
  90. ImageRectangle($ob,0,0,$szerokosc-1,$wysokosc-1,$kolor_linii);
  91.  
  92. // dodanie tytułu
  93. $tytul='Wyniki ankiety';
  94. $wymiary_tytulu=ImageTTFBBox($rozmiar_tytulu, 0, $czcionka, $tytul);
  95. $dlugosc_tytulu=$wymiary_tytulu[2]-$wymiary_tytulu[0];
  96. $wysokosc_tytulu=abs($wymiary_tytulu[7]-$wymiary_tytulu[1]);
  97. $tytul_nad_linia=abs($wymiary_tytulu[7]);
  98. $tytul_x=($szerokosc-$dlugosc_tytulu)/2; // wyśrodkowanie w x
  99. $tytul_y=($y-$wysokosc_tytulu)/2+$tytul_nad_linia; // wyśrodkowanie w y
  100. ImageTTFText($ob, $rozmiar_tytulu, 0, $tytul_x, $tytul_y,
  101.  $kolor_tekstu, $czcionka, $tytul);
  102.  
  103. // narysowanie bazy od nieco ponad pozycją pierwszego słupka do nieco 
  104. // poniżej pozycji ostatniego
  105. ImageLine($ob, $x, $y-5, $x, $wysokosc-15, $kolor_linii);
  106.  
  107. /*********************************************
  108.   Umieszczenie danych na wykresie
  109. *********************************************/
  110. // Pobranie każdej linii bazy danych i narysowanie odpowiadających słupków
  111. while ($rzad=$wynik->fetch_object())
  112. {
  113. if($ilosc_glosow>0)
  114. $procent=intval(round(($rzad->ilosc_glosow/$ilosc_glosow)*100));
  115. else
  116. $procent=0;
  117.  
  118. // wyświetlenie procentów dla tej wartości
  119. $wymiary_procentow=ImageTTFBbox($rozmiar_podstawowy, 0, $czcionka, $procent.'%');
  120. $dlugosc_procentow=$wymiary_procentow[2]-$wymiaryprocentow[0];
  121. ImageTTFText($ob,$rozmiar_podstawowy, 0, $szerokosc-$dlugosc_procentow-$wciecie_tekstu,
  122.  $y+($wysokosc_slupka/2), $kolor_procentow, $czcionka, $procent.'%');
  123.  
  124. // długość słupka dla tej wartości
  125. $dlugosc_slupka=$x+($procent*$jednostka_slupka);
  126.  
  127. // narysowanie słupka dla tej wartości
  128. ImageFilledRectangle($ob, $x, $y-2, $dlugosc_slupka, $y+$wysokosc_slupka, 
  129.  $kolor_slupka);
  130.  
  131. // narysowanie tytułu dla tej wartości
  132. ImageTTFText($ob, $rozmiar_podstawowy, 0, $wciecie_tekstu,  
  133.  $y+($wysokosc_slupka/2), $kolor_tekstu, $czcionka, 
  134.  "$rzad->kandydat");
  135.  
  136. // narysowanie konturu pokazującego 100%
  137. ImageRectangle($ob, $dlugosc_slupka+1, $y-2, ($x+(100*$jednostka_slupka)),
  138.  $y+$wysokosc_slupka, $kolor_linii);
  139.  
  140. // wyświetlenie liczb
  141. ImageTTFText($ob, $rozmiar_maly, 0, $x+(100*$jednostka_slupka)-50, 
  142.  $y+($wysokosc_slupka/2), $kolor_liczb, $czcionka, 
  143.  $rzad->ilosc_glosow.'/'.$ilosc_glosow);
  144.  
  145. // przesunięcie do następnego słupka
  146. $y=$y+($wysokosc_slupka+$odleglosc_slupkow);
  147. }
  148.  
  149. /*********************************************
  150.   Wyświetlenie obrazka
  151. *********************************************/
  152. Header('Content=type: image/png');
  153. ImagePNG($ob);
  154.  
  155. /*********************************************
  156.   Zwalnianie zasobów
  157. *********************************************/
  158. ImageDestroy($ob);
  159. ?>
  160.  
  161. ?>


próbowałem juz to przekształcać na zwykłe połączenie ale nie udało się
może wam się jakoś uda bym był bardzo wdzięczny :roll2:
Cysiaczek
Cytat(Lejto @ 26.06.2007, 15:04:40 ) *
powiec mi tylko gdzie wpisać
  1. <?php
  2. --with-mysqli=mysql_config_path/mysql_config, gdzie mysql_config_path
  3. ?>


serwer mam apache


Tu jest istotne, jaki masz system operacyjny, bo to polecenie jest fragmentem większego polecenia konfigurującego php do procesu kompilacji na np. Linuksie.
Serwer nie ma znaczenia w tym wypadku.

Pozdrawiam.
Lejto
no pomoże mi ktoś?
elektrrrus
Nie napisałeś nawet czy serwer na windowsie czy linuksie. Co do windowsa, mpps podał juz powyżej rozwiązanie. Co do linuksa, zależy czy masz php skompilowane z mysqli. Jeśli nie działa od razu, to czeka Cię zapewne samodzielna kompilacja. No chyba że jak dobrze poszukasz znajdziesz gdzieś gotowca w pakiecie rpm, deb, tgz, zależy jaką masz dystrybucję.
A tak swoją drogą, można użyć do tekiego prostego działania zwykłe mysql_connect, mysql_select_db itd. Albo PDO, widzę że php5 używasz, więc z tym nie powinno być problemu.
Lejto
mam windowsa ale chodzi o ten przykład czy mógłby ktos go przerobić na szwykłe połączenia?
bo mi się nie udaje
elektrrrus
W czym się nie udało? Gdzie były problemy? Prosze pokazać konkrety. Jeśli się mylę, to niech mnie ktoś poprawi, ale od konkretynych rozwiązań to jest na tym forum osobny dział, gdfzie zamieszcza się zapotrzebowanie i osoby odpowiadaja na to wraz z ceną. Tu chyba chodzi o to, żeby się czegoś samemu nauczyć...
Lejto
ok już mi się udało
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.