Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem w łączeniu z bazą
Forum PHP.pl > Forum > PHP
sadzone
Witam. Jestem nowy na forum i w ogóle w php i napotkałem pewien problem. Na komputerze mam zainstalowanego apacha2.2.3, MySQL 5.0.27 oraz php 5.2.0. Po instalacji wyrzuciłem średniki z php.ini, przed php_mysql oraz php_msqli. Dodałem ścieżkę do mysl oraz php do zmiennej środowiskowej i wszytsko było pieknie dopóki nie chciałem dostać się do bazy przez php. Sam mysql działa poprawnie, stworzyłem bazy, kilka tabel. Apache nie ma problemów z wykonywaniem samego php, ale w momencie kiedy chce się połączyć z moją bazą wyświetla sie biała strona, żadnego błędu. Nie weim co z tym robić :/ Podrzuce kodzik. Jest to niezmieniony przykład z ksiązki Helionu do php i mysql. Zmieniłem na swoje jedynie nazwę bazy, użytkownika i hasło. A wygląda to tak:

<html>
<head>
<title>"Książkorama"-Rezultaty wyszukiwania</title>
</head>
<body>
<h1>"Książkorama"-Rezultaty wyszukiwania </h1>
<?php
// utworzenie krótkich nazw zmiennych
$metoda_szukania=$_POST['metoda_szukania'];
$wyrazenie=$_POST['wyrazenie'];

$wyrazenie = trim($wyrazenie);

if (!$metoda_szukania || !$wyrazenie)
{
echo 'Brak parametrów wyszukiwania. Wróć do poprzedniej strony i spróbuj ponownie.';
exit;
}

if (!get_magic_quotes_gpc())
{
$metoda_szukania = addslashes($metoda_szukania);
$wyrazenie = addslashes($wyrazenie);
}

// i tutaj sie zaczynaja schody. dod tego miesjca wszytsko dziala. potem juz nic sie nie wyswietla

@ $db = new mysqli('localhost', 'ksiazkorama', 'ksiazkorama123', 'ksiazki');

if (mysqli_connect_errno())
{
echo 'Błąd: Połączenie z bazą danych nie powiodło się. Spróbuj jeszcze raz później.';
exit;
}

$zapytanie = "select * from ksiazki where ".$metoda_szukania." like '%".$wyrazenie."%'";
$wynik = $db->query($zapytanie);

$ile_znalezionych = $wynik->num_rows;

echo '<p>Ilość znalezionych pozycji: '.$ile_znalezionych.'</p>';

for ($i=0; $i <$ile_znalezionych; $i++)
{
$wiersz = $wynik->fetch_assoc();
echo '<p><strong>'.($i+1).'. Tytuł: ';
echo stripslashes($wiersz['tytul']);
echo '</strong><br />Autor: ';
echo stripslashes($wiersz['autor']);
echo '<br />ISBN: ';
echo stripslashes($wiersz['isbn']);
echo '<br />Cena: ';
echo stripslashes($wiersz['cena']);
echo '</p>';
}

$wynik->free();
$db->close();

?>

</body>
</html>

Nie wiem czy podałem wystarczająco duzo szczegółow, ale jakby ktos miał jakis pomysł co to może być, to błagam bo nie rusze dalej smile.gif
Pozdrawiam
kociupk
mi sie wydaje ze powinno byc tak
@ $db = new mysqli('localhost', 'ksiazkorama', 'ksiazkorama123') or die(mysql_error());
mysql_select_db(ksiazki);
Sabistik
~kociupk źle Ci się wydaje. ;p albo rybki albo akwarium(albo mysqli albo mysql )

~sadzone używaj bbcode! Poza tym za mało informacji. Podaj jaki błąd wywala, a jak nie wyświetla to sprawdź czy masz włączone wyświetlanie błędów. Zerknij tez do logów apacha.
aha i usuń @ z przed $db = new mysqli
sadzone
Właczyłem obsługe błędów i ukazało mi się coś znajomego. Coś co nie raz widziałem przy instalacji wcześniejszych wersji php. Mianowicie komunikat:
php Startup: Unable to load dynamic library 'G:\php\ext\php_mysql.dll" - Nie można odnaleźć okresłonej procedury.
Po czym po chwili to samo tylko dla mysqli, a potem oba jeszcze raz.
Oba te pliki znajdują sie w ext, wrzuciłem je tez do folderu Windowsa. Może problem leży w tym, że nie są one chyba z tej dystrybucji php. Bo kiedy zainstalowałem php to folder ext w ogóle nie istniał. Skopiowałem go z instalacji wcześniejszej wersji. Miałem nadzieje, że lepsze to niz nic, ale chyba nie trafiłem:/ Taki ze mnie informatyk smile.gif Jesli chodzi o sam kod php do łaczenia z bazą to po oblokowaniu wyświetlania błędów pojawia się informacja:
Fatal error: Class 'mysqli' not found in G:\Program Files\Apache Software Fundation\Apache2.2\htdocs\rozdzial_11\rezultaty.php on line 26
no ale jak nie znalazł biblioteki to skąd miał znać class mysqli... :/
Co zrobić żeby przy starcie serwera php odnalazł te biblioteki?

A i czego tutaj nie używać żeby to było zgodne BB Code? smile.gif
Sedziwoj
A dlaczego przy instalacji php nie dodałeś tych rozszerzeń?
Teraz wystarczy dodaj usuń program, php zmień i w ext. wybrać odpowiednie do instalowania i powinno pomóc.
sadzone
Zainstalowałem od nowa php ze wszytskimi rozrzerzeniami i narszecie apache startuje bez błędów. Tyle, że w momencie kiedy chce połączyć się z bazą wyskakuje błąd systemu:

szAppName : httpd.exe szAppVer : 2.2.3.0 szModName : php5ts.dll
szModVer : 5.2.0.0 offset : 000974cd

co z tym zrobić?
exit
A samo php Ci działa? To znaczy czy inne pliki php są wykonywane.

Wpisz sobie np:

  1. <?
  2. ?>


i odpal ten plik

zobaczysz przynajmniej czy php dobrze działa.
sadzone
samo php działa. I phpinfo i kazdy inny kod, dopóki nie dotyczy on połączenia z bazą :/
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.