Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Call to undefined function mysql_connect(), O co chodzi????
*_ENIGMA
post 20.12.2004, 23:53:37
Post #1





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 1.11.2004
Skąd: Wrocław

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


Witajcie...

Najpierw dane oprogramowania:

php 5.0.2
Apache 2.0.46
MySQL 3.23.58

Po połączeniu ze stroną otrzymuję taki komunikat:

Kod
Fatal error: Call to undefined function mysql_connect() in C:\apache\htdocs\test.php on line 2


Baza danych działa w porządku, bo mogę w lini komend logować się, dodawać bazy, tabele itp.

Możliwe, że coś jest nie tak skonfigurowane w php czy na Apache?
(Brakuje jakiegoś modułu?)

Oto kod źródłowy pliku php (wzięty zresztą z Manuala):

Kod
<?php
   $link = mysql_connect('localhost', 'phpuser', 'phppass')
   or die('Nie można się połączyć: ' . mysql_error());
   print ('Połączenie nawiązane');
   mysql_close($link);
?>



W pliku php.ini aktywowałem bibliotekę php_mysql.dll...

Niestety po uruchomieniu Apache wyskakuje okienko dialogowe z informacją:

Cytat
php Startup: Unable to load dynamic library 'C:\php\ext\php_mysql.dll' - Jeden z plików bibliotek potrzebnych do uruchomienia
tej aplikacji nie może zostać znaleziony.


Najlepsze jest to, że mam tę bibiliotekę php_mysql.dll w folderze C:\php\ext... questionmark.gifquestionmark.gif
Jeszcze raz ściągnąłem zestaw bibliotek dla php 5.0.2 ale dalej to samo... exclamation.gif

Ogłupieć można :-(


Proszę o jakąś poradę jak rozwiązać ten problem.

Pozdrawiam.


--------------------
EnigmaCretu.Com >>
Go to the top of the page
+Quote Post
eS...
post 21.12.2004, 00:02:30
Post #2





Grupa: Zarejestrowani
Postów: 367
Pomógł: 2
Dołączył: 4.03.2003
Skąd: C:/Windows/Temp

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


hmmm ja zawsze robie tak i dziala
  1. <?php
  2.  
  3.  mysql_connect('localhost', 'phpuser', 'phppass')or die('Nie można się połączyć: ' . mysql_error());
  4.  print ('Połączenie nawiązane');
  5.  
  6. ?>


--------------------
Go to the top of the page
+Quote Post
DeyV
post 21.12.2004, 02:36:05
Post #3





Grupa: Zarząd
Postów: 2 277
Pomógł: 6
Dołączył: 27.12.2002
Skąd: Wołów/Wrocław




Cytat("install.txt")
  php_mysql.dll MySQL functions php >= 5.0.0, requires libmysql.dll
  (bundled)
  php_mysqli.dll MySQLi functions php >= 5.0.0, requires libmysqli.dll
  (bundled)

Oznacza to, że musisz te pliki umieścić w jakimś folderze sprawdzanym podczas uruchamiania ( np. apache/bin lub windows/system32 )


--------------------
"Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
Go to the top of the page
+Quote Post
adwen
post 21.06.2007, 22:39:39
Post #4





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 21.06.2007

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


Zawsze musisz zrobić dwie rzeczy w pliku php.ini:
1. Wyszukać linię
Kod
;extension=php_mssql.dll

i usunąć znak ; z jej początku (czyli zwyczajnie odkomentować)
2. Ustawić ściężkę do katalogu w którym znajdują się rozszerzenia, czyli wyszukać linię
Kod
extension_dir = ""

i przypisać jej ścieżkę do katalogu w którym znajdują się rozszerzenia PHP. To właśnie tam znajduje się m.in. plik php_mssql.dll. Zazwyczaj jest to podkatalog ./ext w katalogu głównym PHP.
Wiele osób często odkomentowuje ładowanie dll-a do obsługi mysql-a zapominając o wcześniejszym ustawieniu ścieżki do katalogu z rozszerzeniami. To z kolei prowadzi ponownie do błędu:
Kod
Call to undefined function mysql_connect()
.


--------------------
"Bądź realistą, żądaj rzeczy niemożliwych"
--------------------
Pozdrawiam,
Adam Wencław
PHP Programmer & SEO Specialist
www.wenclaw.pl
Go to the top of the page
+Quote Post
webdice
post 21.06.2007, 23:20:23
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




~adwen mylisz bazy, nie mssql.dll tylko mysql.dll

Ten post edytował webdicepl 21.06.2007, 23:20:49
Go to the top of the page
+Quote Post
go_lab
post 5.07.2007, 00:24:45
Post #6





Grupa: Zarejestrowani
Postów: 30
Pomógł: 0
Dołączył: 19.06.2007

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


gdzie szukać php.ini?

Mam na kompie kilka Apacheów i PHPów, i nie jestem pewien czy ten z C:\Windows działa wtedy, kiedy chciałbym (opisane kroki nie przynoszą rezultatu)
Go to the top of the page
+Quote Post
cornholio666
post 30.07.2007, 09:57:05
Post #7





Grupa: Zarejestrowani
Postów: 472
Pomógł: 8
Dołączył: 14.03.2004
Skąd: Rzeszów

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


Chciałem coś dorzucić może się komuś przyda. Otóż męczyłem się z tym samym problemem.

Po odpaleniu phpinfo() wyczytalem ze extension_dir = "C:\php5\" co było nieprawdą ponieważ katalog ext znajdował się w C:\serwer\php5\ext

Zrozumiałem o co chodzi gdy zobaczylem ze w Loaded Configuration File jest ścieżka C:\WINDOWS\php.ini chociaż ten plik w ogóle nie istniał

Rozwiązaniem było przekopiowanie php.ini do C:\WINDOWS\

Pozdrawiam


--------------------
I need TP for my bunghole!!!

Mój nowy przyjaciel - tytanowa płytka na stałe
------------------------------------------------------
AEGEE, kwiaciarnia rzeszów , notariusz rzeszów, zakład krawiecki rzeszów, paweł jakubowicz
Go to the top of the page
+Quote Post
Berkovits
post 1.09.2007, 17:43:34
Post #8





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.08.2007

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


Wiem, ze dopisuje sie do (dosc) starego tematu. Trafilem tu przeszukujac siec, by znalezc rozw. moich problemow. Moze kiedys komus pomoze to, co napisze, gdy bedzie szukal w sieci pomocy. Opisze 3 problemy, na ktore sie natknalem i sposoby, za pomoca ktorych je rozwiazalem. Zwiazane byly z instalacja MySQL'a i powiazania go z parserem PHP, w szczegolnosci z dolaczeniem biblioteki PDO. Do dziela!

Katalogi:
Serwer Apache: C:\Program Files\Server\Apache2.2
Serwer MySQL: C:\Program Files\Server\MySQL5.0
Parser PHP: C:\Program Files\Server\PHP5
Moje strony: D:\www (domyslnie bylo c:\..Apache2.2\htdocs)
______________________________________________________

Blad podczas instalowania MySQL'a. Podczas uruchomienia programu Server Instance Configuration Wizard, po kliknieciu przycisku [execute] pojawia sie blad:
Error:0 cannot create windows service for MySQL.
Problem u mnie polegal na tym, ze juz wczesniej probowalem zainstalowac MySQL, jako skladnik pakietu Krasnal, jednak po deinstalacji go, usluga MySQL'a byla wciaz dostepna. Czy tak jest mozna sprawdzic nastepujaco:
start->panel sterowania->narzedzia administracyjne->uslugi. Jesli na liscie jest juz MySQL, to nalezy go usunac.
Mozna to zrobic podobno tak: start->Uruchom..., wpisac
sc delete mysql, ale ja, zanim to poznalem, zrobilem inaczej:
Uruchomilem start->uruchom...: regedit, w ktorym znalazlem:
HKEY_LOCAL_MACHINE->SYSTEM->CurrentControlSet->Services->MySQL i usunalem to.
Po restarcie windowsa uslugi MySQL juz nie bylo. Wtedy mozna ponownie uruchomic Server Instance Configuration Wizard.
____________________
Wszystko juz zainstalowane, trzeba skonfigurowac.

Blad: Fatal error: Class 'PDO' not found in D:\www\test\sql.php on line 15
Linia 15: $pdo = new PDO('mysql:host=localhost;port=3306;dbname=test','root','root');

Rozwiazanie: Nalezy (nie tylko do tego, ale, by uzywac mysql'a bez problemow w pliku php.ini napisac (a raczej odkomentowac przygotowane juz linijki):

a )
extension=php_gd2.dll <-- nie wiem do czego to jest, chyba tu niepotrzebne
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_pdo.dll
extension=php_pdo_mysql.dll

b ) Napisac: extension_dir = "C:/Program Files/Server/PHP5/ext"

c ) W pliku httpd.conf (konfiguracja Apache'a) wpisac sciezke do pliku php.ini:
PHPIniDir "C:/Program Files/Server/PHP5"

Brak tych rzeczy widac uruchamiajac skrypt <?php phpinfo(); ?>:
c ): Loaded Configuration File (none)

b ): extension_dir C:\php5 (<-tak u mnie zareagowalo, czyli zle) Jesli nie ma c), to chyba wszelkie ustawienia w
php.ini nie sa widoczne

a ): nie wiem, jak to sie objawia w php_info();
___________________________________

Blad: Fatal error: Uncaught exception 'PDOException' with message 'could not find driver' in
D:\www\test\sql.php:15 Stack trace: #0 D:\www\test\sql.php(15): PDO->__construct('mysql:host=loca...', 'root', 'root') #1 {main} thrown in D:\www\test\sql.php on line 15

Linia 15: $pdo = new PDO('mysql:host=localhost;port=3306;dbname=test','root','root');

Blad: Call to undefined function mysql_connect() in D:\www\test\sql2.php on line 3
Linia 3: mysql_connect('localhost:3306', 'root', 'root');

Rozwiazanie: Zrobic tak, by plik libmysql.dll byl widoczny dla systemu. Sluzy do tego chyba
zmienna systemowa PATH (jak do niej dodac sciezke do c:/...php5 - nie wiem). Zamiast tego mozna (nienajelegantsze rozwiazanie, ale ja tak zrobilem) wrzucic ten plik do np.
c:/windows, albo do c:/windows/system32.

Brak tego objawia sie (u mnie tak bylo) za pomoca skryptu <?php phpinfo() ?> nastepujaco:
PDO support: enabled
PDO drivers: no value <---

Ponadto z dolaczonym (jak powyzej) libmysql.dll pojawia sie ramka:
>         pdo_mysql
> PDO Driver for MySQL, client library version 5.0.37, czego nie ma bez libmysql.dll.

...................

Do badania, co jest nie tak, moze sie przydac skrypt:
<?php $t=get_declared_classes(); foreach($t as $el) echo $el.'<br/>'; ?>

Wyswietla m.in., (bez libmysql.dll lub z nia):
PDOException
PDO
PDOStatement
PDORow

Jednak bez pliku libmysql.dll nie ma nastepujacych pozycji, ktore chyba powinny byc:
mysqli_sql_exception
mysqli_driver
mysqli
mysqli_warning
mysqli_result
mysqli_stmt
_____________________________________________________
Uwaga: Po zmianach pamietac o restartowaniu serwera Apache.

To by bylo na tyle.
Go to the top of the page
+Quote Post
diablohero
post 5.08.2008, 18:50:09
Post #9





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 5.08.2008

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


Bardzo pomocny post, tyle ze u mnie ciagle jest to call to undefined function mysql_connect() po wykonaniu zalecanych przez Ciebie czynnosci. Linijek
Cytat
PDO support: enabled
PDO drivers: no value <---
w phpinfo() nie mam. Jesliby ktos dal znak zycia bylbym wdzieczny. biggrin.gif

Ten post edytował diablohero 6.08.2008, 11:37:01
Go to the top of the page
+Quote Post
cartoon_20
post 22.08.2008, 10:20:21
Post #10





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 21.08.2008

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


Ja także miałem problem z błędem: Call to undefined function mysql_connect():
Moja konfiguracja była następująca:
- zmienna środowiskowa PHPRC="c:\PHP" - czyli katalog główny php
-w pliku httpd.conf serwera Apache dopisane linie:
LoadModule php5_module "C:/PHP/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:/PHP"
-w pliku php.ini:
extension_dir = "C:\PHP\ext"
oraz odkomentowana linia: extension= php_mysql.dll

Gdy restartowałem serwer pojawiał mi się komunikat mówiący że nie można załodować pliku "C:\PHP\ext\php_mysql.dll" - nie można odmnaleźć pliku. Komunikat pojawiał się mimo tego że plik o podanej nazwie znajdował się w podkatalogu \ext, więc wszystko powinno być w porządku.

Rozwiązaniem okazało się skopiowanie plików:
- php_mysql.dll ( z lokalizacji "C:\PHP\ext\")
- libmysql.dll ( z lokalizacji "C:\PHP\")
do katalogu systemowego C:\WINDOWS.

Próbowałem przenieść powyższe pliki do tej samen lokalizacji, tzn. najpierw obydwa do "C:\PHP\ext\", a potem do "C:\PHP\" ze zmianą extension_dir na tą lokalizacje. Niestety nie przynosło to skutku, więc jedymym wyjściem okazało się przedstawione powyżej. Co ciekawe inne rozszerzenia ładują się bez problemu z "C:\PHP\ext\".

Co prawda wszystko już działa ale męczy mnie to że te dwie biblioteki musiałem przenieść do głównego katalogu systemowego.
Ma ktoś może pomysł co powoduje ten problem i jak go naprawić??
Go to the top of the page
+Quote Post
Berkovits
post 29.08.2008, 02:23:16
Post #11





Grupa: Zarejestrowani
Postów: 39
Pomógł: 0
Dołączył: 25.08.2007

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


Właśnie instalowalem sobie po raz kolejny Apache, MySql, PHP i aby nie popelniac starych bledow zajrzalem do tego tematu. Obecnie problem pliku libmysql.dll zalatwilem w ten sposob:

Start->Control Panel->System->karta Advanced->przycisk [enviroment variables]->obszar [system variables]->zaznaczyc Path->nacisnac [Edit] i dopisac sciezke do katalogu php (ze srednikiem oddzielajacym) - u mnie dopisalem ;C:\Program Files\php5

Musialem zrestartowac komputer (chyba dopiero wtedy zmiana zmiennej systemowej Path daje efekt).

Teraz w <?php phpinfo(); ?> w tabeli Environment pole Path zawiera dodana sciezke.

diablohero: sprawdz, czy odkomentowales odpowiednie rozszerzenia.
Go to the top of the page
+Quote Post
CriS182
post 15.10.2012, 13:01:49
Post #12





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 15.10.2012

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


witam serdecznie użytkowników!!;D Z góry przepraszam jeżeli to niewłaściwy dział, ale posty w tym temacie pomogły mi rozwiązać wcześniejsze problemy, za co dziękuję!;D

moja specyfikacja:
- Apache 2.4.3
- Php 5.4.6
- MySQL 5.5.28

a wszystko pracuje na Windows 7

Problem polega na tym, że po odpaleniu skryptu:
CODE
<?php
$connect=@mysql_connect('localhost', 'root', 'hasło, które podałeś przy instalacji')or die('Blad!: ' . mysql_error());
print ('Połączenie nawiązane');
mysql_close($connect);
?>


Php wypluwa bląd: Access denied for user 'root'@'localhost' (using password: YES)
a z command line mogę sie normalnie polączyć z MySQL i tworzyc baze danych komendami SQL. Czy ktoś miał podobny problem i może pomóc?? serdeczne dzięki!!;D

Ten post edytował CriS182 15.10.2012, 13:03:29
Go to the top of the page
+Quote Post
nospor
post 15.10.2012, 13:05:37
Post #13





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




"hasło, które podałeś przy instalacji"
Naprawdę masz zamiast hasła ten tekst czy może jednak wpisałeś tam hasło?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
CriS182
post 15.10.2012, 13:13:33
Post #14





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 15.10.2012

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


wstydnis.gif wstydnis.gif wstydnis.gif
glupota ludzka nie ma granic!! przepraszam za siebie. Wpisałem tam hasło podane przy instalacji MySQL server i wszystko działa poprawnie!!;D wypluło: "Polaczenie nawiazane". Jestem początkujący i obiecuje przeczytać teraz dział Przedszkole i następne pytania zadawać na odpowiednim poziomie!! Dzięki nospor!!;D
Go to the top of the page
+Quote Post
Elandir
post 12.11.2015, 14:46:43
Post #15





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 26.10.2014

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


No dobra też mam problem z tym komunikatem.

Wpisuję kod:

Kod
mysql_connect('localhost', 'user', 'haslo')or die('Nie można się połączyć: ' . mysql_error());
   print ('Połączenie nawiązane');
   mysql_close();



no i pojawia się wyżej wspomniany błąd.

Czy można jakoś prawdzić poprawność instalacji i integracji z php i apachem?

Dodam, iż do mysql loguję sie bez problemu i nawet moge tworzyć bazy i tabele.
Go to the top of the page
+Quote Post
Crozin
post 12.11.2015, 15:07:58
Post #16





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


1. Wchodzimy na stronę dokumentacji: http://php.net/manual/en/function.mysql-connect.php
2. Czytamy co zostało napisane w wielkim czerwonym polu.
3. Stosujemy się do tego co zostało tam napisane.
Go to the top of the page
+Quote Post
Elandir
post 13.11.2015, 08:03:37
Post #17





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 26.10.2014

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


Użyłem mysqli_connect

Kod
$link = mysqli_connect("localhost", "admin_baza", "haslo_baza", "baza");

if (!$link) {
    echo "Error: Unable to connect to MySQL." . PHP_EOL;
    echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
    echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
    exit;
}
echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;

mysqli_close($link);


No i nadal to samo.

Dodam jeszcze, że pracuję na komputerze firmowym, na którym nie mam praw administratora. Serwer, php i mysql instalował firmowy informatyk więc nie wiem co i jak istalował. Dlatego zależy mi na tym aby dowiedzieć się jak sprawdzić czy wszysko jest poprawnie zainstalowane.

Ten post edytował Elandir 13.11.2015, 08:04:52
Go to the top of the page
+Quote Post
Pyton_000
post 13.11.2015, 08:05:33
Post #18





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


Wyświetl sobie phpint(); i szukaj Mysqli,PDO

I wołaj informatyka smile.gif
Go to the top of the page
+Quote Post
Elandir
post 13.11.2015, 11:57:42
Post #19





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 26.10.2014

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


Cytat(Pyton_000 @ 13.11.2015, 08:05:33 ) *
Wyświetl sobie phpint(); i szukaj Mysqli,PDO

I wołaj informatyka smile.gif


No właśnie wezwanie informatyka to nie taka prosta sprawa, więc wolał bym sam to jakoś rozwiązać.
Go to the top of the page
+Quote Post
nospor
post 13.11.2015, 12:16:07
Post #20





Grupa: Moderatorzy
Postów: 36 556
Pomógł: 6314
Dołączył: 27.12.2004




Skoro to nie ty instalowales, to skad wiesz ze uzywasz poprawnych danych takich jak user czy haslo?


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

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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: 30.04.2025 - 10:15