首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于网络的PDO连接IP的改变

基于网络的PDO连接IP的改变
EN

Stack Overflow用户
提问于 2014-06-07 13:57:11
回答 1查看 1.3K关注 0票数 2

我刚刚建立了一个环境,通过Vagrant在2台开发笔记本电脑上实现一致性。我使用的是带有PDO的远程MySQL服务器(主服务器)。我想知道我是否可以使用PHP来确定我是否在本地网络上作为MySQL服务器并通过192.168.1.111连接到它,或者我是否与MySQL服务器在同一个网络上并通过*.dyndns.org连接到它。

我已经正确地设置了本地和远程连接,并且它们都在工作。

如果MySQL服务器是可用的,但如果不是通过远程地址,那么如何使用它在本地连接?

代码语言:javascript
复制
$pdo = new PDO('mysql:host=' . DB_IP . ';port=' . DB_PORT . ';dbname=' . DB_NAME, DB_USER, DB_PASSWORD);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-07 14:05:07

你就不能试试这样的东西吗?

代码语言:javascript
复制
$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...“方式。但是,如果您是在产品环境中,那么这将不再是一个例外--无论如何,您都必须重新构建这部分代码。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24097977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档