2013-12-21 64 views
0

我在另一個文件夾core/connect.php中獲得連接類,它給了我這個錯誤,我不知道如何解決它?對於新問題抱歉。PDO連接類準備錯誤

致命錯誤:調用一個成員函數準備()在C語言的非對象:\瓦帕\ WWW \上線register.php 11

<?php 
    function dbconnect(){ 
     try{ 
      $username = 'root'; 
      $password = ''; 
      $pdo = new PDO("mysql:host=localhost;dbname=lr;", $username, $password); 
      $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     } catch(PDOException $e){ 
      echo 'ERROR',$e->getMessage(); 
     } 
    } 
?> 

register.php

<form method="POST"> 
    <input type="text" name="username"><br/> 
    <input type="password" name="password"><br /> 
    <input type="submit"> 
</form> 

<?php 
    if(isset($_POST['username'], $_POST['password'])){ 
    require 'core/connect.php'; 

    $query = dbconnect()->prepare('INSERT INTO `users` (username, password) VALUES (?, ?)'); 

    $query->bindParam(1, $_POST['username']); 
    $query->bindParam(2, $_POST['password']); 
    $query->execute(); 
} 
?> 
+0

將'return $ pdo;'放在'try {}'塊的末尾 – MonkeyZeus

+0

您不會從函數返回'$ pdo'句柄。 – mario

回答

1

試試這個:

<?php 
function dbconnect(){ 
    try{ 
     $username = 'root'; 
     $password = ''; 
     $pdo = new PDO("mysql:host=localhost;dbname=lr;", $username, $password); 
     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

     return $pdo; 

    } catch(PDOException $e){ 
     echo 'ERROR',$e->getMessage(); 
    } 
    } 
?> 

請務必包括connect.php在register.php或使用自動加載磁帶機等