2014-05-09 72 views
-3

我得到以下警告警告使用的mysqli和PHP类

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

有了下面的代码

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"); 
    } 
} 

我打电话从连接的ValidateUser()像这样

$validator = new Validator; 
$validator->validateUser($_POST["id"], $_POST["pass"]); 

我看着整个互联网和每一个线程都可以找到,但无法得到答案,任何帮助吗?我仍然对PHP类和mysqli不熟悉,之前我已经使用了一些mysql扩展,并且在当前的设置上工作得很好。

+0

将'connect()'变成'public' – user3091574

+0

what'mysqli_connect_error()'? –

+0

@ChristianGollhardt Sec –

回答

0

我没有测试过这个,但它可能与端口是一个字符串值而不是int。查看用户对官方文档的评论。 http://www.php.net/manual/en/mysqli.construct.php

尝试将该端口转换为int。

+0

该端口是一个整数 – Sal00m

+0

As @ Sal00m表示,它是一个整数。 –

+0

对不起,我以为我看到了引号。请忽略。 –

相关问题