我刚刚建立了一个环境,通过Vagrant在2台开发笔记本电脑上实现一致性。我使用的是带有PDO的远程MySQL服务器(主服务器)。我想知道我是否可以使用PHP来确定我是否在本地网络上作为MySQL服务器并通过192.168.1.111连接到它,或者我是否与MySQL服务器在同一个网络上并通过*.dyndns.org连接到它。
我已经正确地设置了本地和远程连接,并且它们都在工作。
如果MySQL服务器是可用的,但如果不是通过远程地址,那么如何使用它在本地连接?
$pdo = new PDO('mysql:host=' . DB_IP . ';port=' . DB_PORT . ';dbname=' . DB_NAME, DB_USER, DB_PASSWORD);发布于 2014-06-07 14:05:07
你就不能试试这样的东西吗?
$opt = array(
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
);
try
{
$dsn = "mysql:host=localhost;dbname=test;charset=utf8";
$pdo = new PDO($dsn,'root','', $opt);
}
catch (PDOException $e)
{
$dsn = "mysql:host=yourRemoteHost;dbname=testRemoteHost;charset=utf8";
$pdo = new PDO($dsn,'root','', $opt);
}就像这样,您尝试连接到localhost,如果它不能工作,则捕获异常并连接到远程。只需将您的数据用于mysql:host等。
Christian Gollhardt提到,如果您处于dev状态,可能可以使用"Throw new Exception...“方式。但是,如果您是在产品环境中,那么这将不再是一个例外--无论如何,您都必须重新构建这部分代码。
https://stackoverflow.com/questions/24097977
复制相似问题