【发布时间】:2013-06-06 16:02:03
【问题描述】:
我对使用 PHP 进行面向对象编程还很陌生,无法弄清楚为什么下面的代码不起作用。任何帮助将不胜感激!
public function connect() {
$db = new mysqli($this->host,$this->username,$this->password,$this->database);
if ($db->connect_errno){
echo "Failed to connect to MySQL: (" . $db->connect_errno . ") " . $db->connect_error;}
return $this->buildDB();
}
private function buildDB() {
$sql = "CREATE TABLE IF NOT EXISTS news (
title VARCHAR(150),
body TEXT,
created VARCHAR(100))";
$db->query($sql);
return true;
}
执行时出现以下错误:
注意:未定义变量:第 25 行 C:\xampp\htdocs\SimpleCMS\cms.php 中的 db
致命错误:在第 25 行对 C:\xampp\htdocs\SimpleCMS\cms.php 中的非对象调用成员函数 query()
【问题讨论】:
-
您的问题不在于 OOP,而在于您的
$db变量的范围(仅存在于您的connect()函数中,而不存在于您的buildDB()函数中)。 -
@YourCommonSense 哦不,又是一个傲慢的评论。
标签: php mysql database mysqli scope