경고

2014-05-09 4 views
-3

나는 다음 코드경고

class Validator 
{ 
    private $username; 
    private $password; 
    private $port; 
    private $IP; 
    private $database; 

    private $mysqli; 

    public function __construct() 
    { 
     $this->username = "root"; 
     $this->password = "root"; 
     $this->port = 3006; 
     $this->IP = "localhost"; 
     $this->database = "users"; 
    } 

    private function connect() 
    { 
     $this->mysqli = new mysqli($this->IP, $this->username, $this->password, $this->database, $this->port); //error here 

     if($this->mysqli->connect_errno) 
      return false; 
     else 
      return true; 
    } 
    public function validateUser($ID, $PWD) 
    { 
     if(!$this->connect()) 
      redirect("login.php?error=mysqli_cant_connect"); 
    } 
} 

내가 그렇게

$validator = new Validator; 
$validator->validateUser($_POST["id"], $_POST["pass"]); 
같은 validateUser에서 connect()를 호출하고있어 다음과 같은 경고

Warning: mysqli::mysqli(): in E:\xampp\htdocs\control\validate.php on line 28 

받고 있어요

나는 인터넷과 내가 찾을 수있는 모든 스레드에 걸쳐 높고 낮게 보였지만 대답을 얻지 못했습니다. 어떤 도움이 필요합니까? 저는 PHP 클래스와 mysqli에 대해 아직 익숙하지 않습니다. 이전에 약간의 MySQL 확장을 사용 했었고 현재의 설정에서 잘 작동했습니다.

+0

'connect()'를'public'으로 만드십시오. – user3091574

+0

mysqli_connect_error()는 무엇을 말합니까? –

+0

@ChristianGollhardt Sec –

답변

0

이 테스트를 거치지는 않았지만 포트가 int가 아닌 문자열 값이되어야 할 수도 있습니다. 공식 문서에 대한 사용자 의견을 참조하십시오. http://www.php.net/manual/en/mysqli.construct.php

포트를 int로 캐스트 해보십시오.

+0

포트가 정수 – Sal00m

+0

@ Sal00m이 말했듯이, 정수입니다. –

+0

죄송합니다. 저는 인용 부호를 보았습니다. 무시하십시오. –