gpt4 book ai didi

php - MySQL PHP PDO 远程服务器

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:20 25 4
gpt4 key购买 nike

我无法使用 PDO 连接到远程服务器:

    public function dbConnection ($dbHost, $dbName, $dbUsername, $dbPass){
try{
$dbChain = 'mysql:host='.$dbHost.';dbname='.$dbName;
$dbh = new PDO($dbChain, $dbUsername, $dbPass);
print_r($dbh->errorInfo());
die;
...

errorInfo() 只在我有错误的用户或密码时返回一些东西。对于正确的,它不会报告任何内容,但 $dbh 仍然是空的。

errorInfo()

Array
(
[0] =>
[1] =>
[2] =>
)

$dbh

object(PDO)#5 (0) {
}

这是一个远程服务器,但我可以从同一台机器上使用例如 MySQl Workbench 进行访问。对于本地 MySQL 服务器数据库,相同的代码工作得很好。

远程连接可能出了什么问题?

编辑:

public function dbConnection ($dbHost, $dbName, $dbUsername, $dbPass){
try{
$dbChain = 'mysql:host='.$dbHost.';dbname='.$dbName;
$dbh = new PDO($dbChain, $dbUsername, $dbPass);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e){
echo $e->getMessage();
$errorCode = $e->getCode();
var_dump($errorCode);
}

我试过了,但得到了同样的空结果。

object(PDO)#5 (0) {
}

Edit2:结果相同。

        $dbh = new PDO($dbChain, $dbUsername, $dbPass
, [PDO::ATTR_EMULATE_PREPARES => false,
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);

最佳答案

在设置了正确的错误属性后,你应该使用一个 catch 来查看是否有错误 -

try {
$dbChain = 'mysql:host='.$dbHost.';dbname='.$dbName;
$dbh = new PDO($dbChain, $dbUsername, $dbPass);
$dbh->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e) {
echo $e->getMessage();
$errorCode = $e->getCode();
}

关于php - MySQL PHP PDO 远程服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31255217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com