2011-04-02 140 views
0

即时得到这个错误:PHP脚本错误

Fatal error: Call to a member function query() on a non-object in C:\EasyPHP-5.3.6.0\www\Database Manager\install\registration.php on line 18 

继承人我的代码:

<?php 
include("../sql_information.php"); 

class infos { 

    private $sql_initialize; 

    function login_details() { 

     $sql_initialize = new MySQLDatabase(); 
     $sql_initialize; 
     user_name='$register_user_name'"; 
     $queryresult = $this->sql_initialize->query($sql); 


     if ($sql_initialize->fetchArray($queryresult)) { 
      $errors[] = "Username already taken"; 
     } 

     if ($register_password !== $confirm_password) { 
      $errors[] = "Passwords mismatch"; 
     } 

     if (!$errors) { 
      //$register_password = mysql_real_escape_string($register_password); 
      $sql = "INSERT INTO `data_manager`.`user_accounts` (`id`, `user_name`, `password`) VALUES (NULL, '$register_user_name', '$register_password')"; 
      mysql_query($sql); 
      print "registered !"; 
      //header("Location: complete.php"); 
      exit; 
     } else { 
      foreach ($errors as $err) echo $err; 
     } 
    } 
} 
?> 

回答

1
$sql_initialize = new MySQLDatabase(); 

... 

$queryresult = $this->sql_initialize->query($sql); 

你可能会尝试在$this->sql_initialize那里,不$sql_initialize创建对象。

+0

谢谢你现在就工作! – 2011-04-02 23:59:23

3

login_details的第一行,你设置的局部变量$sql_initialize。您需要改为设置$this->sql_initialize

0

最可能的是MySQLDatabase由于错误而没有返回对象,可能在MySQLDatabase类中!

+0

我想你是在影响$ sql_initialize变量。你有两个$ sql_initialize变量。一个是login_details()函数的本地,另一个属于该类。 – Nabeel 2011-04-03 00:43:00

+0

替换此行: $ sql_initialize = new MySQLDatabase(); By this one $ this-> sql_initialize = new MySQLDatabase(); – Nabeel 2011-04-03 00:43:58