douhan8892 2012-06-21 18:33
浏览 33
已采纳

PDO连接未按预期工作

I think this is mostly because I'm new to PHP OOP, but I have a quick question that I can't seem to find an answer for. Since I use the same connection information for several methods, I tired to take out the information and put them into property variables as private and static. However, when trying to make a PDO connection, this doesn't work:

class MyClass {
    private static $DSN = "mysql:host=localhost;dbname=testdb";
    private static $USR = "user";
    private static $PWD = "password";

    public static function connection() {
        $pdo = new PDO($DSN, $USR, $PWD);
        //more code
    }
}

Yet when I enter the information manually, it works fine:

class MyClass {
    public static function connection() {
        $pdo = new PDO("mysql:host=localhost;dbname=testdb", "user", "password");
        //more code
    }
}

So why doesn't using a set of properties work? I spent a few hours trying to get it to work and it just didn't, only to find out that that was the problem. I'm fine with manually connecting but I would like to know why the first solution doesn't work.

  • 写回答

2条回答 默认 最新

  • dongliang1865 2012-06-21 18:36
    关注

    You need the self keyword (along with the scope resolution operator ::) to access those private static properties.

    $pdo = new PDO( self::$DSN, self::$USR, self::$PWD);
    

    Otherwise you're not referencing the correct variables.

    See the manual for more information about static keywords.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错
  • ¥15 单片机学习顺序问题!!
  • ¥15 ikuai客户端多拨vpn,重启总是有个别重拨不上
  • ¥20 关于#anlogic#sdram#的问题,如何解决?(关键词-performance)
  • ¥15 相敏解调 matlab
  • ¥15 求lingo代码和思路
  • ¥15 公交车和无人机协同运输
  • ¥15 stm32代码移植没反应