Problém je v tom, že nepředáváte port jako pátý parametr připojení mysqli. Pokud používáte localhost
jako váš hostitel je parametr port ignorován. To je důvod, proč ve fragmentu MAMP nepředávají $db_port
jako parametr to prostě není potřeba. Důvodem, proč k tomu dochází, je localhost
nepoužívá TCP/IP, místo toho využívá unixové sokety.
Poté, co jste se řídili návrhem ostatních, pravděpodobně jste změnili kód do bodu, kdy jste měli
$db_host = '127.0.0.1';
To je v pořádku, ale protože již nepoužíváte unixové sokety (localhost
), parametr portu je nutný k navázání spojení. Mysqli používá 3306
port jako výchozí, pokud jako pátý parametr nezadáte žádný jiný. Takže toto je port, ke kterému se pokoušíte připojit pomocí tohoto kódu. Zde se objevila Error: Connection refused
pochází z.
K vyřešení problému stačí předat port jako pátý parametr takto:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);
Úryvek sám o sobě je skvělý, jen úplně nevyhovoval vašim potřebám a museli jste ho trochu upravit. Pokud chcete používat úryvky, musíte rozumět tomu, co dělají a v tomto případě, jak funguje mysqli. Nezapomeňte si to pro budoucnost zapamatovat, protože se tím jistě vyhnete nepříjemným situacím a chybám, jako je tato.