W ostatnim wpisie (Typy w PHP i MySQL…) kilka przykładów odnośnie pobieranych danych z bazy i ich typów oraz podałem sposób na rozwiązanie problemu zwracanych typów.
Tutaj natomiast chcę przedstawić Ci co musimy zrobić, by podłączyć nasz sterownik.
Słów kilka o sterowniku MySQLnd
Różnica między sterownikiem MySQL a MySQLnd jest taka, że ten pierwszy do komunikacji z bazą danych używa zwykłego ciągu znaków. Natomiast sterownik MySQLnd do komunikacji używa formy binarnej, przez co w łatwy sposób zachowamy typy, a dodatkowo wykonywanie niektórych operacji na bazie danych może być szybsze i przy wsparciu SSL bezpieczniejsze.
MySQLnd jest natywnym sterownikiem w PHP, a sam język wspiera go już od wersji 5.3/5.4. Czy oznacza to że już go mamy zainstalowanego? – nie do końca.
Jak wynika z dokumentacji, PHP wspiera ten sterownik. Natomiast niekoniecznie będzie on skompilowany i zainstalowany na naszym serwerze. Sam zetknąłem się z tym problemem na jednej z maszyn, gdzie zainstalowana wersja PHP to 5.6, a mimo tego sterownik ten nie był zainstalowany i obsługa bazy leciała przez libmysql.
Jeżeli testowaliśmy kod we wcześniejszym wpisie, a jego wykonanie nie powiodło się – oznacza to że sterownik nie jest zainstalowany.
Instalacja sterownika MySQLnd
Gdy chcemy mieć pewność poprawnego zainstalowania sterownika, powinniśmy sobie skompilować naszego PHP.
Po pobraniu źródeł odpowiedniej wersji 5.3+ (najlepiej 7+), przy kompilacji musimy zaznaczyć taką konfigurację:
./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd (..Reszta opcji konfiguracji kompilacji PHP..)
Następnym krokiem jest kompilacja i instalacja:
// Kompilacja make // Instalcja make install
Teraz możemy sprawdzić czy nowo zainstalowany PHP w pliku konfiguracyjnym php.ini posiada podłączone biblioteki:
extension="mysql.so" extension="mysqli.so" extension="pdo_mysql.so"
Dodatkowo powinniśmy zainstalować lub zaktualizować bibliotekę mysqlnd:
//Usunięcie libmysql ze wszystkich wersji apt-get remove php-mysql php5-mysql //A następnie dla php 5 apt-get install php5-mysqlnd // LUB dla php 7 (w zależności od żródeł) apt-get install php-mysqlnd //Restart Apache2 service apache2 restart // lub /etc/init.d/apache2 restart
Od tego momentu PHP powinien działać przy współpracy sterownika MySQLnd.
A co z Windows?
Tutaj do końca nie mogę się wypowiedzieć, ponieważ nie używam PHP Windows na produkcji. Natomiast na testach w środowisku dev, czysta instalacja z gotowych źródeł (np. XAMPP) wspiera już MySQLnd w wersji 5.6+ jak i 7+. Z dokumentacji PHP wynika też że od wersji 5.3 w Windows sterownik ten jest wbudowany jako podstawowy, więc powinno wszystko działać poprawnie.
Jeżeli artykuł Ci się przydał pozostaw komentarz i podziel się nim z innymi 😉
Dziękuję i pozdrawiam !