2014-01-21 3 views
-2

Я совершенно новичок в PDO и OOP. После этого, я пытаюсь выполнить приведенный ниже код, я получаю этот вывод: - Фатальная ошибка: вызов функции-функции члена() для не-объекта в C: \ xampp \ htdocs \ Mine \ OOPs \ pdo progs \ function. php на строке 20. Спасибо.OOP PDO; Проблемы с глобальной переменной?

<?php 

class main 
     { 

     public function __construct() 
     { 

     $obj=new PDO("mysql:host=localhost;dbname=arnob-pdo",'root','');  

     }  

     public function reg() 
    { 
     global $obj; 
     $name=$_POST['name']; 
     $email=$_POST['email']; 
     $pass=$_POST['pass']; 
       $sql=$obj->query("insert into memo set                
       name='".$name."',email='".$email."',pass='".$pass."'"); 

     if($sql) 
      { 
      ?> 

      <script type="text/javascript"> 
      alert("WELCOME <?php echo $_POST['name']; ?> to Memo"); 
      </script> 
      <?php 
      } 
      else echo 'Registration Failure'; 
     }   
     } 
     $main=new main; 

     ?> 


     index.php: 
     <?php require('function.php'); 

     if (isset($_POST['submit'])) 
     { 

     $exe=$main->reg(); 
     echo $exe; 
     } 

     ?> 

с формой для отправки.

+0

Ошибка на C: \ XAMPP \ HTDOCS \ Mine \ Упс \ п.д.о. Progs \ function.php на линии 20 так размещать код из function.php тоже для оценки. – Alyas

+0

Исправьте форматирование кода, пожалуйста. В настоящее время читать невозможно. – vbo

+0

На самом деле вам следует избегать «глобальных» переменных. Вместо этого вы можете воспользоваться [this] (http://stackoverflow.com/a/11369679/727208) решением. –

ответ

-1

Основные инструкции для классов и переменных можно увидеть в документации: http://php.net/oop5.basic

Как указано другими пользователями, используйте хорошее форматирование кода и четкое описание вашего переменные ($ OBJ является не описательной).

<?php 
    class main { 
     private $db; 

     public function __construct(){ 
      $this->db = new PDO(...); 
     } 

     public function reg(){ 
      ... 
      $sql = $this->db->query(...); 
      ... 
     } 
    } 
?> 
+1

вы фрагмент кода на самом деле будет нарушать OCP .. также, использование 'var', поскольку PHP 5.0 устарел –

+0

Это также на самом деле не работает. – deceze

+0

Спасибо за упоминание teresko, я редактировал образец кода – Richard

Смежные вопросы