Đây là hình ảnh chỉ hiển thị PDO vì thư viện mysql_*
không còn được dùng nữa.
<?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();
}
?>
Lưu ý rằng câu hỏi OP này dường như không còn về số cổng sau. Nếu bạn đang sử dụng cổng mặc định là 3306
luôn, hãy xem xét xóa nó khỏi uri, tức là xóa phần port=$port;
.
Nếu bạn thường xuyên thay đổi cổng, hãy xem xét việc sử dụng cổng trên để có thêm khả năng bảo trì có thay đổi đối với biến số $port
.
Một số lỗi có khả năng quay trở lại với phần trên:
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.
Trong báo lỗi dưới đây, chúng tôi ít nhất là nhận được gần hơn, sau khi thay đổi thông tin kết nối của chúng tôi:
PDO Exception: SQLSTATE[HY000] [1045] Access denied for user 'GuySmiley'@'localhost' (using password: YES)
Sau khi thay đổi hơn nữa, chúng tôi thực sự đóng ngay bây giờ, nhưng không hoàn toàn:
PDO Exception: SQLSTATE[HY000] [1049] Unknown database 'mustard'
Từ hướng dẫn sử dụng trên PDO Connections:
Loại máy này là gì? Nếu kiểm tra linux của nó nếu mysqld đang chạy, hoặc là "trạng thái mysqld dịch vụ" hoặc "/etc/init.d/mysqld status" là root. – Chris
@Chris, Nó đang chạy trên một máy chủ cửa sổ, 2008. – 109221793