Problemet där är att du inte skickar porten som den femte parametern till mysqli-anslutningen. Om du använder localhost
som din värd ignoreras portparametern. Det är därför de inte skickar $db_port
i MAMP-kodavsnittet som en parameter behövs den helt enkelt inte. Anledningen till att detta händer är att localhost
använder inte TCP/IP, istället använder den sig av unix-sockets.
Efter att du har följt andras förslag har du förmodligen ändrat koden till den punkt där du hade
$db_host = '127.0.0.1';
Detta är ok, men eftersom du inte längre använder unix-sockets (localhost
), behövs portparametern för att upprätta en anslutning. Mysqli använder 3306
port som standard om du inte anger någon annan som femte parameter. Så det är porten du försöker ansluta till med den koden. Det är här Error: Connection refused
kommer från.
För att lösa problemet behöver du bara skicka porten som en femte parameter så här:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);
Utdraget i sig är jättebra, det passade bara inte helt dina behov och du var tvungen att göra lite justeringar av det. Om du vill använda utdrag måste du förstå vad de gör och i det här fallet hur mysqli fungerar. Se till att komma ihåg detta för framtiden eftersom det säkerligen kommer att undvika obehagliga situationer och fel som denna.