我正在尝试使用 PDO 从 php 连接 MySQL服务器(由 godaddy 托管)。< / p>
但是我收到了这个错误:
An error occured : SQLSTATE[HY000] [2002] Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
请注意,这不是我托管的数据库。
我只是给了用户名和密码来构建数据库,创建用户等。
function ConnectToDb()
{
try{
$dns = 'mysql:host=1.1.1.1;dbname=dummyDbName';
$username = 'dummyUser';
$password = 'dummyPassword';
$LINK = new PDO($dns, $username, $password);
$LINK->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$LINK->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
if (!$LINK){
die('Could not connect : ' .mysql_error());
}
else{
return $LINK;
}
} catch (PDOException $ex){
echo "An error occured : " .$ex->getMessage();
}
}
我知道这适用于localhost。
我使用它没问题,但只要我尝试连接到实时数据库就失败了。
任何人都有提示吗?
由于
答案 0 :(得分:1)
请遵循以下格式:
$user = "username";
$pass = "password";
$host = "localhost";
$db = "yourDbname";
$dns = "mysql:host=" . $host . ";dbname=" . $db;
$dbh = new PDO($dns, $user, $pass);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
当你必须进行查询时(只是一个例子):
$theid = 10;
$statement = $dbh->prepare('SELECT * FROM yourtable WHERE id = ? and name = ?');
$statement->execute(array($theid,'baronth'));
如果您想查看连接或执行查询时是否存在某些错误(并且您知道try-catch的工作原理),请将其包围:
try {
all the code that you wan't to check
}
catch (PDOException $e) {
echo $e->getMessage();
}
它会回应错误。