Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Problem połączenia strony z bazą...
Forum PHP.pl > Forum > Przedszkole
Yurek
No dobrze jestem nowy i mam problem, polega na tym, że skrypt php nie chce się połączyć z bazą danych mysql.
Posługuję się filmem instruktażowym zrobionym przez serwis Buzz3D, może znacie. Wiele się nauczyłem, rozumiem co i jak, ale nadal potykam się o pewne sprawy.

Otóż tak... Postawiłem server apacz, by przeglądać to co już zrobiłem, wrzucam kolejne strony do foldera i tak dalej. Naturalnie mam działające php, wszelkie strony w php daje się ładnie przeglądać. Udało mi się uruchomić mysql(ściągnięty stąd: http://mysql.com/)
Działa dobrze, mogę przeglądać bazy, tworzyć je, dodawać tabele, i takie tam, stworzyłem wedle polecenia oddzielnego użytkownika.
Teraz... w ConTEXT piszę sobie stronę by nawiązać połączenie z bazą danych.

najpierw plik db_config.php, żeby z niego korzystała reszta stron łącząca się z bazą.
<?php
$db_host = "localhost";
$db_user = "php";
$db_password = "haslo";
$db_name = "main";
?>

Następnie robię wedle instruktarza stronkę w php, która korzystając z konfiga ma nawiązywać właściwe połączenie z mysql. plik temp_con.php

<?php
require($_SERVER["DOCUMENT_ROOT"]."/config/db_config.php");
$connection = mysql_connect($db_host, $db_user, $db_password) or die("Connection Down");
echo "Connection Up";
?>

Po zapisaniu w odpowiednim folderze c:/webroot <-- z którego apacz korzysta. (oraz w przypadku pliku db_config.php w podfolderze c:/webroot/config/), i po wpisaniu w przeglądarce http://localhost/temp_con.php powinno się wyświetlić Connection UP, jak na filmiku, lub Connection down, albo opis errora... ale mi nie wyświetla się nic sad.gif dostaję pustą stronę ...
Zrobiłem także prosty licznik

<?php
require($_SERVER["DOCUMENT_ROOT"]."/config/db_config.php");
$connection = @mysql_connect($db_host, $db_user, $db_password) or die("Connection Down");
mysql_select_db($db_name, $connection);

$query = "SELECT * FROM licznik";
$result = mysql_query($query, $connection) or die(mysql_error());
$views = mysql_result($result, 0, "num_views");

$views++;

$query = "UPDATE licznik SET num_views = $views";
mysql_query($query, $connection) or die(mysql_error());

echo "Ta strona zostala pokazana ".$views." razy";

?>

Ale też się nie chce wyświetlać :/ A sama baza danych się w ogóle nie zmienia, podczas gdy wartość 0 powinna się zmienić... nie wiem co mam robić, jak nawiązać połączenie między mysql a php?
Proszę o pomoc i z góry dziękuję.
blooregard
Na początku skryptu daj :
  1. ini_set('display_errors' , '1');


i usuń małpkę sprzed f-cji mysql_...().

Wtedy będziesz miał czarno na białym, co jest nie tak.
Yurek
Okej, zrobiłem jak poleciłeś i wyrzuciło mi informację: Fatal error: Call to undefined function mysql_connect() in C:\webroot\temp_con.php on line 5
blooregard
Cytat
Fatal error: Call to undefined function mysql_connect() in C:\webroot\temp_con.php on line 5

Brak modułu do obsługi MySQL w PHP.
Używasz Windows, więc poszukaj na forum wątku o libMySql.dll i php_mysql.dll w katalogu windows/system32
Yurek
No dobrze, zrobiłem jak poradziłeś, ale te tematy nie rozwiązują u mnie problemu, większości z resztą nie rozumiem, dopiero niedawno zacząłem, a wy piszecie na ogół fachowym językiem... Nie wiem niestety o co chodzi i co należy zrobić. Spróbowałem skopiować te pliki .dll do systemu i systemu32... restart apacza, ale nadal to samo :/ Nic się nie zmienia
Quantum
znajdź php.ini w systemie, otwórz i zamień ;extension=php_mysql.dll na extension=php_mysql.dll (bez średnika).
Yurek
Cytat(sniffer32 @ 2.12.2009, 22:37:12 ) *
znajdź php.ini w systemie, otwórz i zamień ;extension=php_mysql.dll na extension=php_mysql.dll (bez średnika).

Nie mam takiej linii w php.ini sad.gif nie mam żadnego ;extension=php_mysql.dll ... było jakieś extension=msql.dll to wszystko Zmieniłem to na extension=php_mysql.dll i nadal nic :/
Quantum
stwórz sobie plik .php i w nim odpal phpinfo(), poszukaj mysql, jak uda Ci się znaleźć wklej wartości z tabeli tutaj. Na oko chyba źle wkleiłeś jednak ten plik, o którym mówił blooregard.

libmysql: http://www.dll-files.com/dllindex/dll-files.shtml?libmysql
php_mysql: http://www.dlldll.com/php_mysql.dll_download.html

spróbuj wkleić też do głównego folderu skąd startujesz serwer.
blooregard
Cytat
Zmieniłem to na extension=php_mysql.dll i nadal nic :/

A usunąłeś średnik sprzed extension i zrestartowałeś Apache'a?
Każda zmiana w php.ini wymaga restartu Apache'a, by mógł od nowa zaczytać ustawienia z php.ini
Yurek
Cytat(blooregard @ 2.12.2009, 23:04:39 ) *
A usunąłeś średnik sprzed extension i zrestartowałeś Apache'a?
Każda zmiana w php.ini wymaga restartu Apache'a, by mógł od nowa zaczytać ustawienia z php.ini

Tak, zawsze restartuje apacza po zmianach, miałem to w instruktażu, ale po usunięciu ";" <-- apacz dostaje errora przy restarcie.

Ale spróbuje zainstalować nowe wersje apacza i php... i mysql

Jakby co to poradnikt, z któego korzystam, po angielsku: http://www.3dbuzz.com/vbforum/sv_home.php
darko
to ściągnij kompletnego WAMPa i po kłopocie, google download WAMP
Yurek
Cytat(darko @ 2.12.2009, 23:21:45 ) *
to ściągnij kompletnego WAMPa i po kłopocie, google download WAMP


Dobrze, ściągnąłem tego Wampa, zainstalowałem, ale gdy prubowałem przez localhosta wejść na phpmyadmi - wywala mi:

Cytat
phpMyAdmin - Błąd

nie udało się załadować modułu mysqli,
proszę sprawdzić konfigurację PHP - Dokumentacja


W dokumentacji mi mówi, że znowu jest jakiś problem z:
Cytat
To connect to a MySQL server, PHP needs a set of MySQL functions called "MySQL extension". This extension may be part of the PHP distribution (compiled-in), otherwise it needs to be loaded dynamically. Its name is probably mysql.so or php_mysql.dll. phpMyAdmin tried to load the extension but failed.

Usually, the problem is solved by installing a software package called "PHP-MySQL" or something similar.

Czyli co teraz ściągnąć? Już nie wiem co zrobić, kolejne rozwiązanie i znowu problem z tym samym :/

Tym razem przynajmniej są te rozszerzenia w pliku php.ini z Wampa

;extension=php_bz2.dll
;extension=php_curl.dll
;extension=php_dba.dll
;extension=php_exif.dll
;extension=php_fileinfo.dll
extension=php_gd2.dll
;extension=php_gettext.dll
;extension=php_gmp.dll
;extension=php_intl.dll
;extension=php_imap.dll
;extension=php_interbase.dll
;extension=php_ldap.dll
extension=php_mbstring.dll
;extension=php_ming.dll
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
;extension=php_oci8.dll ; Use with Oracle 10gR2 Instant Client
;extension=php_oci8_11g.dll ; Use with Oracle 11g Instant Client
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
;extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll
;extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
;extension=php_pgsql.dll
;extension=php_phar.dll
;extension=php_pspell.dll
;extension=php_shmop.dll
;extension=php_snmp.dll
;extension=php_soap.dll
;extension=php_sockets.dll
;extension=php_sqlite.dll
;extension=php_sqlite3.dll
;extension=php_sybase_ct.dll
;extension=php_tidy.dll
;extension=php_xmlrpc.dll
;extension=php_xsl.dll
;extension=php_zip.dll
blooregard
Cytat
miałem to w instruktażu, ale po usunięciu ";" <-- apacz dostaje errora przy restarcie.

To jeszcze jakbyś nas oświecił, co to za error...
Yurek
Cytat(sniffer32 @ 2.12.2009, 23:03:55 ) *
libmysql: http://www.dll-files.com/dllindex/dll-files.shtml?libmysql
php_mysql: http://www.dlldll.com/php_mysql.dll_download.html

spróbuj wkleić też do głównego folderu skąd startujesz serwer.

Walnąłem to gdzie się tylko da... i nadal to samo. w php.ini extensions to z php które wskazywałeś, jak wyżej napisałem było bez średnika.
Nie wiem w czym problem :/

Hej, piszę tylko by zgłosić, że udało się wszystko uruchomić smile.gif Należało wpisać ścieżkę do głównej lokacji php w System>Zaawansowane>Zmienne środowiskowe> PATH
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.