PHP5.5里面的一个CLASS故障声明连接的变量

时间:2015-01-09 17:16:39

标签: php mysql variables pdo global-variables

您好我正在尝试使用连接来验证并最终将用户注册到我的数据库中。我创建了一个名为Registration的类,其中包含我的验证方法等等。但是我的PDO连接/声明这个变量有问题。这是一些代码:

开始

<?php
require 'includes/crypt/lib/password.php';
require 'includes/db_connect.php';
require 'includes/authentication_generator.php';

当前代码:不工作

$pdo = connect();
class Registration{
    //Variables used
    public $errors = array();
    public $pdo;

    public function __construct(){
        $pdo = connect();
    }

我尝试的其他方式

class Registration{
//Variables used
public $errors = array();
$pdo = connect();

此代码给出了错误Parse error: syntax error, unexpected '$pdo' (T_VARIABLE), expecting function (T_FUNCTION) in C:\xampp\htdocs\rdr_dev\includes\registration.php on line 9

第二次尝试

class Registration{
//Variables used
public $errors = array();
public $pdo = connect();

这给了我错误Parse error: syntax error, unexpected '(', expecting ',' or ';' in C:\xampp\htdocs\rdr_dev\includes\registration.php on line 9

我有点想法,我想知道是否有更好的方法来使用这个连接,因为我试图在我要使用它的每个页面上声明它,它告诉我它不可能宣称不止一次。关于如何使用它的当前标准是什么?

由于

1 个答案:

答案 0 :(得分:0)

在Google和Murach的书中提供了很少的帮助

<强>码

要求'includes / db_connect.php';

class Registration{
    //Variables used
    public $errors = array();
    private $pdo;

    public function __construct(){
        $con = new Connection();
        $this->pdo = $con->getConnection();
    }

重新创建数据库连接到类

class Connection{

    protected $db;

    public function Connection(){

    $conn = NULL;

        try{
            $conn = new PDO("mysql:host=localhost;dbname=RDR_Dev", "", "");
            $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            } catch(PDOException $e){
                echo 'ERROR: ' . $e->getMessage();
                }    
            $this->db = $conn;
    }

    public function getConnection(){
        return $this->db;
    }
}

感谢您帮助所有人!