2013-07-23 1 views
0

Привет, я знаю, как установить «set_charset ('utf8'); со стилем:Как установить «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; 
    } 
} 

Но я не могу создать эту БД набор кодировок часть, это всегда какая-то ошибка :)

Пожалуйста, помогите, Спасибо

+0

И что это за ошибка? – Anigel

+0

Ошибка с кодом отправлено, он отлично работает. Проблема в том, что я пытаюсь вставить «set_charset ('utf8'); часть. Если я попытаюсь использовать '$ this-> db = new mysqli ('127.0.0.1', 'root', 'pass', 'data');' with: '$ this-> set_charset ('utf8');' он дает мне «Неустранимая ошибка: вызов неопределенного метода Главная страница :: set_charset()« – uollaa

ответ

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, как объект, автоматически создается соединение с базой данных и будет установить кодировки UTF-8.

Класс MySQLI был расширен для повторного использования всех ваших методов, таких как $ core_class_object-> stmt_init();

+0

решена, спасибо – uollaa

Смежные вопросы