这是仅PDO的可视化,因为该mysql_*
库已弃用。
<?php
$host="hostname";
$username="GuySmiley";
$password="thePassword";
$dbname="dbname";
$port="3306";
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/>";
} catch (PDOException $e) {
echo 'PDO Exception: ' . $e->getMessage();
exit();
}
?>
请注意,此OP问题毕竟与端口号无关。如果您使用默认端口“ 3306
always”,请考虑从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连接手册中: