1

我对我从 java 知道的 php 构造函数很陌生。但由于某种原因,这个没有运行。我正在关注一个教程,但我似乎无法获得1一个0. 以下是涉及的两个脚本:

<?php

class dbConnection{
    protected $db_conn;
    public $db_name = 'todo';
    public $db_user = 'root';
    public $db_pass = '';
    public $db_host = 'localhost';

    function connect(){
        try{
            $this->db_conn = new PDO("mysql:host=$this->db_host;db_name=$this->db_name",$this->db_user,$this->db_pass);
            return $this->db_conn;
        }
        catch(PDOException $e)
        {
            return $e->getMessage();
        }
    }

}

?>

<?php

include_once( 'class.database.php' );

class ManageUsers {
    public $link;
    public $constructed;

    function ManageUsers(){
        $db_connection = new dbConnection();
        $this->link = $db_connection->connect();
        return $this->link;
    }

    function registerUser($username,$password,$ip_address,$time,$date){
        $query = $this->link->prepare("INSERT INTO users (username,password,ip_address,time,date) VALUES (?,?,?,?,?)");
        $values = array($username,$password,$ip_address,$time,$date);
        $query->execute($values);
        $counts = $query->rowCount();
        return $counts;
    }
}


$users = new ManageUsers();

echo $users->registerUser('bob','bob','127.0.0.1','10:00','29-02-2012');
?>
4

3 回答 3

1

您应该尝试__construct()改用 for ManageUsers()

另外,我不太确定您要在构造函数中实现什么(请参阅下面的标记):

function ManageUsers(){
    $db_connection = new dbConnection();
    $this->link = $db_connection->connect();
    return $this->link; //<--?
    $constructed = 'Construct'; //<--?
}
于 2014-01-27T15:36:31.167 回答
1

同意 - 您使用的方法是老式 PHP4 方法 - 您应该使用 __construct() 方法,如上所述。

http://www.php.net/manual/en/language.oop5.decon.php

本页解释 PHP 5 中的construct() & destruct()

于 2014-01-27T15:38:37.320 回答
0
// constructor
function __construct() {
 ManageUsers();
}


function ManageUsers(){
    $db_connection = new dbConnection();
    $this->link = $db_connection->connect();
    $constructed = 'Construct';
}

您不能从构造函数返回,也许您可​​以将链接设为公共属性并像这样直接访问它

$user = new ManageUsers();
$link = $user->$link;
于 2014-01-27T15:42:27.320 回答