脚本宝典收集整理的这篇文章主要介绍了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
谁能告诉我这个问题是什么?
例:
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,请注明来意。