2

インクルード ファイルに PDO オブジェクトがあり、それをメイン ページで使用するとうまく機能します。そして、それをオブジェクト内で使用するためにオブジェクトに渡すと、単に機能しません。

私は直接、参照 (function xxxx(&dbd){ this->$db = &dbd }) を試しましたが、単に機能しませんが、別のタイプの値を (文字列として) 渡すと、完全に機能します。$db = "olaola" を送信すると機能しますが、PDO の場合は失敗します。私はPHPと英語の初心者なので、しばらくお待ちください:P

含まれるファイル:

$username = "root";
$password = "*****";
$host = "localhost";
$dbname = "dbname";
$db = NULL;
$options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8');

try
{
    $db = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8", $username, $password, $options);
}
catch(PDOException $ex)
{
    die("Failed to connect to the database: " . $ex->getMessage());
}

$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);

主に:

$pagMenu = new pages($db);

ページクラスで:

class pages {

    private $db;

    function __construct($db) { 
        $this->$db = $db;
    }
}
4

3 に答える 3

6

構文は次のとおりです。

    $this->db = $db;

違い$this->$dbます。

于 2012-11-02T16:04:50.707 に答える
5

やったほうがいい

$this->db = $db;

それ以外の

$this->$db = $db;

2 番目の形式は変数 variable です。これは、変数の内容として名前が付けられた変数にパラメーターの値を割り当てることを意味し、その内容が PDO オブジェクトである場合はエラーを返します。

于 2012-11-02T16:07:38.747 に答える