0

mysql接続用にこのクラスがあり、関数名を変更せずにmysqliに置き換えたいです。

class DB { function DB($db_host, $db_user, $db_port, $db_pass, $db_name) {

$link = mysql_connect($db_host, $db_user, $db_pass) or die("Can't connect to database");
mysql_select_db($db_name, $link);
}    
public static function execute($sql) {
    $result = mysql_query($sql) or die("Could not query:$sql");
    return $result;
}   
public static function num_rows($result)
{
    return mysql_num_rows($result);
}

public static function fetch($result)
{
    return mysql_fetch_assoc($result);
}
}

$DB = new DB(DB_HOST, DB_USER, DB_PORT, DB_PASS, DB_NAME);

何かを変更しようとしましたが、コンストラクタ $link に問題があります (関数を実行できません)。致命的なエラー: オブジェクト コンテキストではないときに $this を使用する

class DB {
function DB($db_host, $db_user, $db_pass, $db_name) {
$link = mysqli_connect($db_host, $db_user, $db_pass,$db_name) or die(mysqli_connect_error());

     return $link;          
}    
public static function execute($sql) {

             //$link = mysqli_connect('localhost', 'root', '' , 'database');

$this->DB(); 

$result = mysqli_query(**$link**,$sql); 

    return $result;
}
public static function num_rows($result)
{
    return mysqli_num_rows($result);
}

public static function fetch($result)
{
    return mysqli_fetch_assoc($result);
}
}

実行関数でコンストラクター $link を使用するにはどうすればよいですか??? 誰かが私を助けることができますか?前もって感謝します。

4

2 に答える 2

0

これらの操作には PDO を使用してみてください。書き直そうとしないでください ;) http://www.php.net/manual/en/book.pdo.php

そして PHP5 以降、コンストラクターは次のように宣言されます: __construct()

于 2013-10-28T16:42:32.427 に答える