0

嗨,我知道如何设置“set_charset('utf8');” 风格:

$db = new mysqli('127.0.0.1','root','pass','data') or die ('error with connection');
$db->set_charset('utf8');

但现在我想用这样的类来做到这一点:

class Core {
protected $db, $result;
private $rows;

public function __construct(){
    $this->db = new mysqli('127.0.0.1','root','pass','data');

    }

public function query ($sql){
    $this->result = $this->db->query($sql);
    }

public function rows(){
    for($x =1; $x<= $this->db->affected_rows; $x++){
        $this->rows[] = $this->result->fetch_assoc();
        }
        return $this->rows;
    }
}

但我无法创建这个 db set charset 部分,它总是某种错误:)

请帮忙,谢谢

4

1 回答 1

0

您的代码工作正常,但在您的评论中我发现了一个错误。

试试这个解决方案:

class Core extends mysqli
{
    protected $db, $result;
    private $rows;

    public function __construct()
    {
        parent::__construct('127.0.0.1','root','pass','data');

        if (mysqli_connect_error()) {
            throw new exception('Connect Error (' . mysqli_connect_errno() . ') '. mysqli_connect_error());
        }

        $this->set_charset('utf-8');
    }


    public function query($sql)
    {
        $this->result = parent::query($sql);
    }
}

当您将 Core 类称为 Object 时,将自动创建与数据库的连接并将设置字符集 UTF-8。

MySQLI 类被扩展为重用你的所有方法,如 $core_class_object->stmt_init();

于 2013-07-23T13:20:38.627 回答