PDO: Se meu host IST localhost: 80, o que eu tenho que colocar aqui?
Pergunta
Recebi este exemplo no site PHP:
<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
Eu uso o MAMP no Mac e, quando ligo para o meu site local, fica assim:
http://localhost:80/mysite/index.php
Então, o que exatamente eu teria que escrever
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
para host =? Isso seria localhost, ou seria localhost: 80? Ou algo totalmente diferente? Meu mysql db tem o número da porta 3306. Isso é relevante? Ou é apenas "localhost" perfeitamente bem?
Solução
O que você tem agora deve ficar bem, assumindo que o MySQL esteja em execução na mesma máquina.
A porta 80 é o que o seu servidor da web (Apache) está em execução. O MySQL estará em execução em uma porta diferente. Se o seu servidor MySQL estiver em execução na porta padrão, você provavelmente não precisará colocar o número da porta e o que você tem funcionará bem. Se você instalou o MySQL para executar em uma porta diferente, provavelmente precisaria colocar o número da porta.
Além disso, se você tiver o Apache em execução na porta 80, nem precisa colocar o ": 80" no URL do seu site. Como a porta 80 é a porta padrão para HTTP, o navegador usará isso automaticamente.
Outras dicas
O servidor MySQL e o servidor HTTP são programas separados em execução em sua máquina.
A porta 80 no URL pertence ao servidor HTTP, enquanto o MySQL Server, por outro lado, leva outra porta, geralmente 3306
.