php - 错误主机的PDO使用localhost

时间:2017-05-16 14:46:36

标签: php mysql pdo localhost host

我安装了WAMP,安装了Windows Server 2012 R2 Datacenter Edition,Apache 2.4.23,PHP 7.0.10(mysqlnd 5.0.12-dev - 20150407),MySQL 5.7.14。

我配置了一个连接:

<?php

  $host  = '192.168.123.123'; //'localhost';
  $dbase = 'db_name';
  $user  = 'my_user';
  $pwd   = 'my_pwd';
  $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_SILENT;
  $connection='mysql: host='.$host.'; dbname='.$dbase;

  try {
    $link = new PDO($connection, $user, $pwd, $pdo_options);
    $_SESSION['DB_INFO']=array( 'db'=>$link->getAttribute(PDO::ATTR_DRIVER_NAME),
                                'ver'=>$link->getAttribute(PDO::ATTR_SERVER_VERSION),
                                'cli'=>$link->getAttribute(PDO::ATTR_CLIENT_VERSION ),
                                'srv'=>$link->getAttribute(PDO::ATTR_SERVER_INFO ),
                                );       
    print_r($_SESSION['DB_INFO']);
    }
  catch(\PDOException $err) {
    echo 'Error: '.$err->getMessage();
  };

其中错误服务器不存在(用于捕获错误的测试)。

当我执行代码时,连接使用 localhost 作为主机(我知道它是因为查询到 db_name 的反向数据)。 我没有成功地搜索了一些默认行为或配置。

一些想法?

代码更新:

mysql:host='.$host.';dbname='.$dbase.' 

服务器192.168.123.123不存在,但我有这些回复:

  

数组([db] =&gt; mysql [ver] =&gt; 5.7.14 [cli] =&gt; mysqlnd 5.0.12-dev - 20150407 - $ Id:241ae00989d1995ffcbbf63d579943635faf9972 $ [srv] =&gt;正常运行时间:20111主题:1个问题:354慢查询:0打开:125刷新表:1打开表:118每秒查询平均值:0.017)

但如果我设置$ pwd ='wrong_pwd',答案是:

  

错误:SQLSTATE [HY000] [1045]用户'my_user'@'localhost'拒绝访问(使用密码:是)

正如@MichaelBerkowski所说,消除DSN中的空格

mysql: host='.$host.'; dbname='.$dbase.'

而不是

class JobPage extends React.Component {

  componentWillMount() {
    this.props.dispatch(fetchJob(this.props.match.params.slug))
  }

  getMultiLineText(text) {
    text.split('\n').map((item, key) => {
      return <span key={key}>{item}<br/></span>
    })
  }

  render() {

    const { job } = this.props;

    return(
      {this.getMultiLineText(job.desc)}
    )
  }


}

解决了问题,因此出现了错误。

0 个答案:

没有答案