PDO代码和PHP未定义错误

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PDO代码和PHP未定义错误脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我有这个代码连接到数据库

class dbConn{
public $dbname='database';
PRivate $dbhost='localhost';
private $dbusername='username';
private $dbpassword='password';


protected static $db;
private function __construct() {

try {

self::$db = new PDO('MysqL:host='.$dbhost.';dbname='.$dbname,$dbusername,$dbpassword );
self::$db->setattribute( PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {

echo "Connection Error: " . $e->getMessage();
}

}


public static function getConnection() {


if (!self::$db) {

new dbConn();
}


return self::$db;
}

}




class MysqL{

    function showTables(){
                $db = dbConn::getConnection();

                $query=$db->query("show tables");

                $fetchArray = $query->fetchAll(PDO::FETCH_ASSOC);
                foreach($fetchArray as $index=>$val) {
                            echo $val;
                          }
    }
}

$obj=new MysqL;
$obj->showTables();

面临的问题是,如果我直接将数据库登录详细信息用于pdo语句,如下所示:

self::$db = new PDO( 'MysqL:host=localhost;dbname=databasename','root','pass');

我没有任何问题.但是,如果我像上面所说的那样使用变量并将值存储到它们中.

Notice: Undefined VARiable: dbhost 

Notice: Undefined variable: dbname 

Notice: Undefined variable: dbusername 

Notice: Undefined variable: dbpassword

以下错误来了,另外在其他类中也无法连接到数据库.

谁能告诉我这个问题是什么

解决方法

访问类属性时需要使用$this – $this是当前对象.

例:

try {
  self::$db = new PDO('MysqL:host='.$this->dbhost.';dbname='.$this->dbname,$this->dbusername,$this->dbpassword );
  self::$db->setAttribute( PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}
catch (PDOException $e) {
  echo "Connection Error: " . $e->getMessage();
}

当你调用$dbhost时,你正在寻找当前范围内的变量,在本例中是构造函数.在这种情况下,$dbhost和$this-> dbhost是两个不同的东西.

脚本宝典总结

以上是脚本宝典为你收集整理的PDO代码和PHP未定义错误全部内容,希望文章能够帮你解决PDO代码和PHP未定义错误所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。