2013-11-09 47 views
0

林學習如何在PHP中使用類致命錯誤:調用未定義的方法

我試着插入我的數據庫中的信息,但它給我這個錯誤

致命錯誤:調用未定義的方法Produto: :introduzirProduto()在C:\ XAMPP \ htdocs中\ KAPA \類\ lol.php第7行

連接代碼:

<?php 

class dbConnect{ 
private $db_host; 
      private $db_user; 
      private $db_pass; 
      private $emp_db = "mydb"; 

      var $connection; 
      var $db_select; 
      var $result; 
      var $row; 

      function __construct(){ 
       $this->db_host = "localhost"; 
       $this->db_user = "root"; 
       $this->db_pass = ""; 
      } 

      function connect(){ 
       $this->connection = mysql_connect($this->db_host, $this->db_user, $this->db_pass); //create connection 
        checkErr($this->$connection); 

       $this->db_select = mysql_select_db($this->emp_db, $connection); 
        checkErr($this->db_select); 
      } 
} 

?> 

形式:

<?php 
require_once 'introduzir.class.php'; 
?> 
<form action="lol.php" method="POST" id=""> 
    <input type="text" name="id"/> 
    <input type="submit" value="ok.." /> 
</form> 

插入代碼

<?php 
    require_once('conectar.php'); 

    class Produto extends dbConnect { 
     var $bd; 
    } 

    function Produto() { 
     global $emp_db, $db_user, $db_pass, $db_host; 
       $this->bd = new dbConnect(); 
       $this->bd->ligarBD($emp_db, $db_user, $db_pass, $db_host); 
     } 

     function introduzirProduto($id) { 
      $sql = "INSERT INTO produto VALUES ('$id')"; 
      if($this->bd->executarSQL($sql)) return true; 
      else return false; 
     } 


?> 

<?php 
require_once 'introduzir.class.php'; 

if($_REQUEST['id']!="") { 

          $produto = new Produto(); 
          if($produto->introduzirProduto($_REQUEST['id'])) { 

           echo "Registo efectuado com sucesso !!!<br>"; 
          } else { 
           echo "Problema encontado no Registo !!!<br>"; 
          } 


      } else { 
       echo "ERRO: Deve introduzir a sua password...<br>"; 
      } 

?> 

我需要什麼改變?

+1

首先做一個適當的縮進。 –

回答

0

您創建的類名爲Produto沒有函數,您定義了$bd變量,那麼您已經結束了該類的定義。您需要刪除的花括號變量聲明後,把它的功能後,像這樣:

<?php 
    require_once('conectar.php'); 

    class Produto extends dbConnect { 
     var $bd; 

     function Produto() { 
       global $emp_db, $db_user, $db_pass, $db_host; 
       $this->bd = new dbConnect(); 
       $this->bd->ligarBD($emp_db, $db_user, $db_pass, $db_host); 
     } 

     function introduzirProduto($id) { 
      $sql = "INSERT INTO produto VALUES ('$id')"; 
      if($this->bd->executarSQL($sql)) return true; 
      else return false; 
     } 
    } 

?> 

作爲一個側面說明,你有那並不是以大寫開頭的功能,和一個例如:總是以小寫字母開頭,並且在使用大寫字母后(如同第二個功能一樣)

0

您已經關閉了Produto類的大括號之前定義了功能Produto()introdizirProduto()。我強烈建議您將代碼縮進以避免將來出現類似的錯誤。

<?php 
require_once('conectar.php'); 

class Produto extends dbConnect { 
    public $bd; 

    function Produto() { 
     global $emp_db, $db_user, $db_pass, $db_host; 
     $this->bd = new dbConnect(); 
     $this->bd->ligarBD($emp_db, $db_user, $db_pass, $db_host); 
    } 

    function introduzirProduto($id) { 
     $sql = "INSERT INTO produto VALUES ('$id')"; 
     if($this->bd->executarSQL($sql)) return true; 
     else return false; 
    } 
} 

//Rest of your code follows. 
?> 

PSvar在PHP過時,避免使用它\

相關問題