PDO连接备选问题

时间:2017-04-16 10:19:00

标签: php mysql pdo

我已尝试过两种不同类型的PDO连接,它们都在localhost上工作正常,但只有其中一种在远程服务器上正常工作,即使它们都使用完全相同的凭据。

第一个在localhost和远程上工作的是:

try {


    $pdo = new PDO('mysql:host=xx.xxx.xxx.xx; dbname=dbxxxx', 'uxxxx', 'pxxxx');
    $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
    $pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
    $pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES,false);

} catch (PDOException $e) {

    echo 'Connection failed: ' . $e->getMessage();

    die();

}

第二个仅使用与上述完全相同的凭据在本地工作:

echo "hello";
error_reporting(E_ALL); 
ini_set("display_errors", 1);
$databaseHost = 'xx.xxx.xxx.xx';
$databaseName = 'dbxxxx';
$databaseUsername = 'uxxxx';
$databasePassword = 'pxxxx';
//$port="3306";
$charset = 'utf8';

try {

    //$dsn = "mysql:host=$databaseHost;port=$port;dbname=$databaseName;charset=$charset";
    $dsn = 'mysql:host=$databaseHost;dbname=$databaseName;charset=$charset';

    $opt = [
    PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
    PDO::ATTR_EMULATE_PREPARES => false,
        ];

$pdo = new PDO($dsn, $databaseUsername, $databasePassword, $opt);

} catch(PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

所以,我很困惑为什么顶部的工作而不是底部工作。

-Thanks

0 个答案:

没有答案