2016-06-23 4 views
1

Я новичок в php среде и изучаю, как сделать кодирование в простом формате OOP. Я собираюсь протестировать мой function в своем class, чтобы узнать, зарегистрирован ли пользователь.Always Return False - OOP Php

вот мои: testController.php

<?php 


error_reporting(E_ALL^ E_DEPRECATED); 

require_once('test.php'); 
$test = new test(); 

$email = isset($_POST['emailAdd']) ? $_POST['emailAdd'] : ''; 

if ($test->emailExist($email)) { 
    echo "TRUE"; 
}else { 
    echo "FALSE"; 
} 

?> 

Мой класс: test.php

<?php 

error_reporting(E_ALL^ E_DEPRECATED); 
require_once('dbConnectClass.php'); 

class test{ 
    private $db; 
    public $getEmail; 

    public function __construct(){ 
     $this->db = new dbConnectClass(); 
     $this->db->connectDatabase(); 
    } 

    public function emailExist($email) 
    { 
     $getEmail = $email; 
     $sql = "SELECT EmailAddress FROM useryayong WHERE `EmailAddress` = '$email' "; 

     $result = mysqli_query($this->db->connect,$sql); 

      $no_of_rows = mysqli_num_rows($result); 
      if ($no_of_rows > 0) { 
       // user exist 
       return true; 
      } else { 
       // user not exist 
       return false; 
      } 

    } 

} 

Вот мой: dbConnectClass.php

<?php 
//INCLUDE DB 
require('dbConnect.php'); 

class dbConnectClass{ 

    //VAR Connect 
    public $connect; 

    //CONSTRUCTOR 
    public function __construct(){}  

    //DESTRUCTOR 
    public function __destruct(){} 

    //METHOD - CONNECT TO DATBASE 
    public function connectDatabase(){ 

     $this->connect = mysqli_connect(DB_SERVER, 
             DB_USER, 
             DB_PASSWORD, 
             DB_DATABASE) or die(mysqli_error($this->connect)); 

      //SET CUSTOM ERROR MESSAGE 
      if (mysqli_connect_errno()) { 
       die("Database connection failed"); 
      }else { 
       return $this->connect;  
      } 

    } 

    //METHOD - CLOSE DATABASE CONNECTION 
    public function closeDatabaseCon(){ 
     mysqli_close($this->connect); 
    }  

}//END CLASS 
?> 

СТОЛ: фиктивные значения table

POSTMAN post

В моей таблице [email protected] существует. Поэтому он должен возвращать TRUE.

+3

Вы не присвоили '$ db' свойству класса' test'. –

+0

Сэр, если все в порядке, вы можете опубликовать свой ответ только на эту конкретную строку. Я сомневаюсь, что моя ошибка в этой строке '$ sql =" SELECT EmailAddress FROM useryayong WHERE 'EmailAddress' = '. $ Email'"; ' – RoCk

+0

- это электронное письмо, хранящееся в вашей таблице базы данных? –

ответ

0

Изменить функцию конструктора для этого:

public function __construct(){ 
    $this->db = new dbConnectClass(); 
    $this->db->connectDatabase(); 
} 

И есть ошибка в вашем SQL синтаксиса. Снимите . с $email.

"SELECT EmailAddress FROM useryayong WHERE `EmailAddress` = '$email'"; 
+1

Спасибо, это действительно работает! Я отвечу на ваш ответ после 5 минут обратного отсчета. :) Спасибо. – RoCk

+0

SIr, вы можете мне помочь, я всегда получаю ЛОЖНЫЙ результат. Я пытаюсь использовать 'POSTMAN' – RoCk

+0

, используя точный запрос, как я уже сказал выше. –

0

Я просто удалить isset($_POST['emailAdd']) ? $_POST['emailAdd'] : ''; из $email в моей test.php.