2016-08-20 87 views
-4

我coudnt在我的类上使用我的PDO mysql连接..你能帮我修改我的代码吗? (首先,它连接到数据库,并检查会话在__construct函数检测成员的名字,然后写最后的新闻..)OOP,PDO和MYSQL使用

class Content { 

public function __construct() { 

public $db = new PDO("mysql:host=localhost;dbname=XXXX; 
charset=utf8", "XXXX", "XXXX"); 

$db->exec('SET NAMES `UTF-8`'); 

if ($_SESSION[user_id]) { 
$query = $db->query("SELECT count(id),name FROM members 
WHERE id = '$_SESSION[user_id] LIMIT 1")->fetch(); } 

} 

public function WriteContent() { 
$news = $db->query("SELECT * FROM news ORDER BY id DESC LIMIT 1")->fetch(); 
echo 'hi'.$query[name].'<br/><br/>'.$news[headline].'<br/>'.$news[detail]; 
} 
} 
+0

什么错误的PHP显示? –

+0

空白页:S @Gerald Chablowski – orhuncan

+0

您可以不使用注入而不是在您的contrsucter上调用pdo。此外,你应该使用新的\ Pdo(),就像它指的是JavaScript的名字空间。 –

回答

0

试试这个: 你失踪的$ _SESSION [USER_ID]和报价参数在 - > fetch($参数); 使用PDO时,您前人的精力用一个尝试捕捉,所以如果你有一个错误,你就会知道为什么连接使用PDO的

class Content { 

public function __construct() { 

public $db = new PDO("mysql:host=localhost;dbname=XXXX; 
charset=utf8", "XXXX", "XXXX"); 

$db->exec('SET NAMES `UTF-8`'); 

if (isset($_SESSION['user_id'])){ 
    $userId=$_SESSION['user_id']; 
    $query = $db->query("SELECT count(id),name FROM members 
    WHERE id = $userId LIMIT 1")->fetch(PDO::FETCH_ASSOC); 
    } 
} 

public function WriteContent() { 
$news = $db->query("SELECT * FROM news ORDER BY id DESC LIMIT 1")->fetch(PDO::FETCH_ASSOC); 
echo 'hi'.$query[name].'<br/><br/>'.$news[headline].'<br/>'.$news[detail]; 
} 
} 

例和OOP

class Connection{ 
    protected $con; //connection variable 

    public function Conexion(){ 
     try{ 
      $this->con=new PDO("mysql:host=localhost;dbname=Youtube","root",""); 
      $this->con->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);  
      $this->con->exec("SET CHARACTER SET UTF8"); 
      return $this->con; 
     } 
     catch (PDOException $e){ 
      echo "Error: " . $e->getMessage() . "<br />Line: " . $e->getLine(); 
     } 
    } 
} 

每当你需要连接你会时间必须要求('connetion.php'); 并在其他类中使用它:

Class ViewDataBaseResults extends Connection{ 
    public function ViewDataBaseResults(){ 
     parent::__construct(); //You inherit the construct here 
    } 
    public function view(){ 
     $result=$this->con->query("SELECT * FROM TABLE"); // 
     if($array=$result->fetch(PDO::FETCH_ASSOC));{ 
      echo "Hi: " . $array['name'] . "<br />"; 
     } 
    } 
}