Il problema è che non stai passando la porta come quinto parametro alla connessione mysqli. Se stai usando localhost
come host, il parametro port viene ignorato. Questo è il motivo per cui nello snippet MAMP non stanno passando $db_port
come parametro, semplicemente non è necessario. Il motivo per cui ciò accade è che localhost
non utilizza TCP/IP, ma utilizza socket unix.
Dopo aver seguito il suggerimento di altri, probabilmente hai modificato il codice al punto in cui lo avevi
$db_host = '127.0.0.1';
Questo va bene, ma dal momento che non stai più utilizzando socket unix (localhost
), il parametro port è necessario per stabilire una connessione.Mysqli usa il 3306
port come predefinito se non si specifica nessun altro come quinto parametro. Quindi questa è la porta a cui stai tentando di connetterti usando quel codice. Qui è dove il Error: Connection refused
viene da.
Per risolvere il problema devi solo passare la porta come quinto parametro come questo:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);
Lo snippet in sé è fantastico, semplicemente non si adattava completamente alle tue esigenze e hai dovuto apportare alcune modifiche. Se vuoi usare gli snippet devi capire cosa fanno e in questo caso come funziona mysqli. Assicurati di ricordarlo per il futuro poiché ti eviterà sicuramente spiacevoli situazioni ed errori come questo.