2015-04-08 14 views
8

Na moim komputerze z Windows 7, z PHP v5.6.7 i MySQL v5.6.23 i przy użyciu PHPStorm 8, próbuję utworzyć instancję obiektu mysqli. Kiedy próbuję, dostaję:Nie znaleziono klasy "mysqli" PHP v5.6.7

Fatal error: Class 'mysqli' not found in... 

Mam również uruchomić ten test, zasugerował here:

if (!function_exists('mysqli_init') && !extension_loaded('mysqli')) { 
     echo 'no mysqli :('; 
} else { 
     echo 'we gots it'; 
} 

Wyjście jest:

no mysqli :(

czytam here, że ten problem jest czasami spowodowane, gdy szuka klasy mysqli w przestrzeni nazw. Zmieniłem kod, aby rozwiązać ten problem, ale problem nadal występuje

$mysqli = new \mysqli($host, $userName, $password, $database); 

Czytałem, że ten problem jest czasami spowodowany tym, że rozszerzenie mysqli nie jest włączona. Jednak używam PHP w wersji 5.6.7, a rozszerzenie mysqli jest domyślnie włączone w wersjach 5.3 i nowszych (zgodnie z here).

tylko aby mieć pewność, że sprawdzeniu, php.ini-development i php.ini-production mają extension_dir = "C:/PHP/php-5.6.7/ext" i mają średnika usuwane z linii:

extension=php_mysql.dll 
extension=php_mysqli.dll 

[dodatkowe] mogę znaleźć test prowadzony i zgodnie z phpinfo() nie ładuje plik konfiguracyjny:

Configuration File (php.ini) Path C:\Windows 
Loaded Configuration File (none) 
Scan this dir for additional .ini files (none) 
Additional .ini files parsed (none) 

z jakiegoś powodu, serwer wWW PHPStorm nie szuka php.ini we właściwym miejscu?

mam to ustawienie w opcji „tłumacza” na this:

--php-ini C:\PHP\php-5.6.7\php.ini 

I sprawdzeniu, że jest to właściwa droga.

+2

Myślę, że pliki php.ini-development to tylko szablony, powinieneś skopiować ten, na którym chcesz oprzeć swoją konfigurację i umieścić ją w odpowiednim miejscu, gdzie PHP będzie szukało rzeczywistego pliku; 'php.ini' –

+0

Czy zrestartowałeś wszystkie usługi po wprowadzeniu jakichkolwiek zmian w plikach systemowych? Plus, czy wypróbowałeś '$ mysqli = new mysqli ...' bez slasha? –

+0

Scrowler, dziękuję za sugestię. Zrobiłem to, ale wydaje się, że wystąpił błąd podczas analizy pliku php.ini. Przed edycją mojego pytania robię więcej badań. Fred -ii-, Wierzę, że PHP nie ma uruchomionego procesu, który musi zostać zrestartowany. Wierzę, że PHPStorm automatycznie uruchamia ponownie swój wewnętrzny serwer sieciowy między kolejnymi uruchomieniami. Spróbuję ponownie uruchomić komputer, aby się upewnić. Rzeczywiście próbowałem go zi bez \. –

Odpowiedz

5

scrowler i Michael Bush wskazał na odpowiedź w komentarzach powyżej. Pomyślałem, że utworzę dla niego odpowiedź dla dobra oglądającego wątek. Dzięki, scrowler i Michael Bush.

Pliki php.ini-development i php.ini-production są szablonami. Aby uzyskać efekt, jeden z nich musi zostać skopiowany i zmieniona na php.ini.

+0

Jeśli scrowler lub Michael Bush zechcą napisać to jako odpowiedź przed jutremem, zamiast tego "zaakceptuję" twoje. –

5

Czy dodano katalog instalacyjny PHP do ciebie środowiskowej PATH

  • prawym przyciskiem myszy na moim komputerze z menu Start
  • kliknij na właściwości
  • znaleźć zaawansowanych ustawień systemowych
  • kliknięcie na zmiennych środowiskowych
  • w zmiennych systemowych znajdź ścieżkę PATH dodaj C: \ php zastępując C: \ php katalogiem instalacyjnym PHP ; *** pamiętać separator ścieżki

Zobacz również wpis w php.ini

; Directory in which the loadable extensions (modules) reside. 
; http://php.net/extension-dir 
; extension_dir = "./" 
; On windows: 
extension_dir = "c:/php/ext" 
+0

Tak, instalacja php znajduje się na ścieżce systemowej. –

+0

Wydaje mi się, że musisz edytować swoje php.ini i zmienić extension_dir z extension_dir = "ext" na extension_dir = "c:/php/ext" lub czy kiedykolwiek twoja ścieżka jest –

+2

możesz również potwierdzić, że skopiowałeś i zmieniłeś nazwę albo php .ini-development lub php.ini-produkcja do php.ini –