다음 mysqli 연결이 있습니다. 쿼리 인코딩을 uft-8로 변경하려면 어떻게해야합니까? 키릴 문자 결과를 시각화하면 그들은 ???????와 같이 표시됩니다.MySQLi는 utf-8로 문자를 설정합니다.
mysql_query ("SET NAMES UTF8")와 같은 것이 필요합니다. 하지만 올바른 구문을 잘 모르겠습니다.
아이디어가 있으십니까? 감사.
<?php
class db_result
{
private $handler;
public function __construct($query, $data)
{
foreach($data as $value)
{
$query = preg_replace('/\?/', '"'.db::quote($value).'"', $query, 1);
}
$this->handler = db::$handler->query($query);
}
public function fetch()
{
return $this->handler->fetch_assoc();
}
public function fetchColumn()
{
$row = $this->handler->fetch_array();
return $row?$row[0]:false;
}
}
abstract class db
{
public static $handler;
public static function init($settings)
{
self::$handler = new mysqli($settings['host'], $settings['user'], $settings['password'], $settings['db_name']);
return !self::$handler->connect_errno;
}
public static function query($query, $data=array())
{
return new db_result($query, (array) $data);
}
public static function last_id()
{
return self::$handler->insert_id;
}
public static function quote($string)
{
return self::$handler->escape_string($string);
}
}
자신의 데이터베이스 추상화 계층을 구현하려고하지 마십시오. 여전히 SQL 인젝션에 취약합니다. – Gumbo
죄송합니다. mysqli를 처음 사용했습니다. 설명해 주시겠습니까? – webtech
db_result 클래스 생성자는 위치 표시자가 작성자에서 왔는지 또는 매개 변수로 삽입되었는지를 인식 할 수 없으므로 결함이 있습니다. – Gumbo