O problema é que você não está passando a porta como o quinto parâmetro para a conexão mysqli. Se você estiver usando
localhost
como seu host, o parâmetro port será ignorado. É por isso que no snippet MAMP, eles não estão passando $db_port
como parâmetro, simplesmente não é necessário. A razão disso acontecer é que localhost
não usa TCP/IP, em vez disso, usa soquetes unix. Depois de seguir a sugestão de outra pessoa, você provavelmente alterou o código até o ponto em que tinha
$db_host = '127.0.0.1';
Tudo bem, mas como você não está mais usando soquetes unix (
localhost
), o parâmetro port é necessário para estabelecer uma conexão.Mysqli usa o 3306
port como padrão se você não especificar nenhum outro como quinto parâmetro. Essa é a porta à qual você está tentando se conectar usando esse código. É aqui que aparece o Error: Connection refused
vem de. Para resolver o problema basta passar a porta como um quinto parâmetro assim:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);
O trecho em si é ótimo, ele não atendeu totalmente às suas necessidades e você teve que fazer alguns ajustes nele. Se você quiser usar trechos, você precisa entender o que eles fazem e, neste caso, como o mysqli funciona. Lembre-se disso para o futuro, pois com certeza evitará situações desagradáveis e erros como este.