mysql_*
ライブラリは非推奨であるため、これは PDO のみの視覚化です。
<?php
// Begin Vault (this is in a vault, not actually hard-coded)
$host="hostname";
$username="GuySmiley";
$password="thePassword";
$dbname="dbname";
$port="3306";
// End Vault
try {
$dbh = new PDO("mysql:host=$host;port=$port;dbname=$dbname;charset=utf8", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "I am connected.<br/>";
// ... continue with your code
// PDO closes connection at end of script
} catch (PDOException $e) {
echo 'PDO Exception: ' . $e->getMessage();
exit();
}
?>
このOPの質問は、結局のところポート番号に関するものではないように見えることに注意してください。Always のデフォルト ポートを使用している場合は3306
、uri から削除することを検討してください。つまり、port=$port;
パーツを削除します。
$port
ポートを頻繁に変更する場合は、変数に変更を加えて保守性を高めるために、上記のポートの使用法を検討してください。
上記から返されるいくつかの可能性のあるエラー:
PDO Exception: SQLSTATE[HY000] [2002] No connection could be made because the target machine actively refused it.
PDO Exception: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such host is known.
以下のエラーでは、接続情報を変更した後、少なくとも近づいています。
PDO Exception: SQLSTATE[HY000] [1045] Access denied for user 'GuySmiley'@'localhost' (using password: YES)
さらなる変更を経て、今は本当に近づいていますが、完全ではありません。
PDO Exception: SQLSTATE[HY000] [1049] Unknown database 'mustard'
PDO接続のマニュアルから: