更改基于网络的PHP PDO MySQL连接的IP

 dushearer304 发布于 2023-01-11 10:44

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

我正确设置了本地和远程连接,它们都正常工作.

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

$pdo = new PDO('mysql:host=' . DB_IP . ';port=' . DB_PORT . ';dbname=' . DB_NAME, DB_USER, DB_PASSWORD);

Xatenev.. 7

难道你不能尝试这样的东西吗?!:

$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提到Throw new Exception...如果你处于开发状态,你可能会使用" "方式.但是如果你在产品环境中,那不应该是一个例外 - 那么你将不得不重建这部分代码.

1 个回答
  • 难道你不能尝试这样的东西吗?!:

    $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提到Throw new Exception...如果你处于开发状态,你可能会使用" "方式.但是如果你在产品环境中,那不应该是一个例外 - 那么你将不得不重建这部分代码.

    2023-01-11 10:46 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有