Het probleem is dat je de poort niet als vijfde parameter doorgeeft aan de mysqli-verbinding. Als je localhost
gebruikt als uw host, wordt de poortparameter genegeerd. Daarom passeren ze in het MAMP-fragment $db_port
. niet als parameter is het gewoon niet nodig. De reden dat dit gebeurt, is dat localhost
gebruikt geen TCP/IP, maar maakt gebruik van unix-sockets.
Nadat je de suggestie van anderen hebt opgevolgd, heb je waarschijnlijk de code veranderd naar het punt waar je
$db_host = '127.0.0.1';
Dit is oké, maar aangezien je geen Unix-sockets meer gebruikt (localhost
), is de poortparameter nodig om een verbinding tot stand te brengen. Mysqli gebruikt de 3306
port als standaard één als u geen andere opgeeft als vijfde parameter. Dat is dus de poort waarmee u verbinding probeert te maken door die code te gebruiken. Dit is waar de Error: Connection refused
komt van.
Om het probleem op te lossen, hoeft u alleen de poort als een vijfde parameter als volgt door te geven:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);
Het fragment zelf is geweldig, het voldeed alleen niet helemaal aan je behoeften en je moest er wat aan aanpassen. Als je fragmenten wilt gebruiken, moet je begrijpen wat ze doen en in dit geval hoe mysqli werkt. Onthoud dit voor de toekomst, want het zal u zeker onaangename situaties en fouten zoals deze voorkomen.