Problem polega na tym, że nie przekazujesz portu jako piątego parametru do połączenia mysqli. Jeśli używasz localhost
jako hosta parametr portu jest ignorowany. Dlatego we fragmencie MAMP nie przekazują $db_port
jako parametr po prostu nie jest potrzebny. Powodem tego jest to, że localhost
nie używa TCP/IP, zamiast tego używa gniazd unix.
Po zastosowaniu się do sugestii innych prawdopodobnie zmieniłeś kod do punktu, w którym miałeś
$db_host = '127.0.0.1';
To jest ok, ale ponieważ nie używasz już gniazd unixowych (localhost
), parametr port jest potrzebny do ustanowienia połączenia. Mysqli używa 3306
port jako domyślny, jeśli nie określisz żadnego innego jako piątego parametru. To jest port, z którym próbujesz się połączyć za pomocą tego kodu. Tutaj Error: Connection refused
pochodzi z.
Aby rozwiązać ten problem, wystarczy przekazać port jako piąty parametr w następujący sposób:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);
Sam snippet jest świetny, po prostu nie w pełni odpowiadał twoim potrzebom i musiałeś go trochę poprawić. Jeśli chcesz używać snippetów, musisz zrozumieć, co robią iw tym przypadku jak działa mysqli. Pamiętaj o tym na przyszłość, ponieważ z pewnością pozwoli to uniknąć nieprzyjemnych sytuacji i błędów, takich jak ten.