2013-03-09 5 views
-3

PHP 함수는 매우 간단합니다. 그것은 준비된 문장을 사용하여 데이터베이스를 쿼리하는 것이지만, 왜 작동하지 않는지 이해할 수는 없습니다.PHP : 멤버 함수 호출 non-object에서 prepare()

나는 $this->conn

<?php 

require_once 'constants.php'; 

class Mysql { 

    private $conn; 

    function ___construct(){ 

     $this->conn = new mysqli (DB_SEVER, DB_USER, DB_PASSWORD, DB_NAME); 
     if (!$this->conn){ 
      die('There was a problem connecting to the database!'); 
     } 

    } 

    function verify_name_and_pass ($un, $pwd) { 

     $query = "SELECT * FROM users 
        WHERE username = ? AND user_password = ? 
        LIMIT 1"; 

     if ($stmt = $this->conn->prepare($query)) { 

      $stmt->bind_param('ss', $un, $pwd); 
      $stmt->execute(); 

      if ($stmt->fetch()) { 
       $stmt->close(); 
       return true;    
      } 

     }  
    } 
} 
+3

남자,이 질문은 수십억 번 질문되었습니다. 기존 답변을 읽는 데 몇 초를 보내지 않는 이유는 무엇입니까? –

+3

'DB_SEVER' - 오타가 있습니까? – Clive

답변

2

을 문제가 __construct()되는 I 개인 변수로 $conn를 선언에도 불구하고 오류 '멤버 함수를 호출하는 것은 아닌 객체에() 준비'받고 계속 사용 기능. 적어도 하나의 오타가 :

  • __construct() 2 _와 철자, 당신은 3
  • 와 철자 당신은 아마 DB_SERVER 대신 DB_SEVER 사용하는 것을 의미했다. 당신이 $this->conn 것을 설립 한 번

또한,하지 null, 당신은 연결이 올바르게은 0있어 $this->conn->connect_errno을 읽고 확인하여 설정되어 있는지 확인해야합니다.

관련 문제