【问题标题】:"invalid data source name" with PDO MySQL带有 PDO MySQL 的“无效数据源名称”
【发布时间】:2013-06-07 09:25:01
【问题描述】:

它一直对我有用,但这次不行。

连接.ini

conn = "mysql:host=localhost; dbname=%dbname%"
user = "root"
pass = "%passwd%"
conn1 = "mysql:host=%myRealHostAddr%; dbname=%dbname%"
user1 = "%user%"
pass1 = "%passwd%"

pdo

class prepeared {
    const LOG = "lock/loginsStat.log";
    private $_db;
    private $dbc;

    function __construct(){
        $this->dbc = parse_ini_file($_SERVER["DOCUMENT_ROOT"]."/hours/lock/conect.ini");
        try{
            $this->_db = new PDO($this->dbc["conn"], $this->dbc["user"], $this->dbc["pass"]);
        }catch(PDOException $e){
            echo $e->getMessage();
        }
    }

等等…… Vars %var% 是实际值,只是为这篇文章更改了它们。 带有 1 的变量在主机上工作得很好(没有 1,它只是为了本地测试而添加的)。当我将它带到本地机器进行一些测试时,我添加了这个 1 来禁用它们并为本地设置创建一个新的变量。

我现在看到的错误是

无效的数据源名称

任何想法为什么?我知道这个配置在我几周前使用它时工作得很好,所以我怀疑这里没有错误。可能我错了……

【问题讨论】:

    标签: php mysql pdo ini


    【解决方案1】:
    1. 摆脱catch(PDOException $e){ echo $e->getMessage();} 的东西,以获得完整和有用的错误消息,而不是你目前拥有的那个存根。
    2. var_dump($this->dbc); 也很有帮助。

    【讨论】:

    • OK 问题出在 $_SERVER["DOCUMENT_ROOT"]."/hours/lock/conect.ini" 这是错误的方法。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-31
    • 2015-04-29
    • 2015-03-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-05
    相关资源
    最近更新 更多