Это визуализация только для PDO, поскольку библиотека mysql_*
устарела.
<?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-вопрос, похоже, не относится к номерам портов. Если вы всегда используете порт по умолчанию 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 :