MYSQL类

来源:互联网 发布:淘宝等待揽收最多几天 编辑:程序博客网 时间:2024/06/04 01:12
<?phpclass mysql{private $_conn = '';public function __construct($hostname, $username, $password, $database){if (!$this->_conn = mysql_connect($hostname, $username, $password)) {exit('Error: Could not make a database connection using ' . $username . '@' . $hostname);}if (!mysql_select_db($database, $this->_conn)) {exit('Error: Could not connect to database ' . $database);}mysql_query("SET NAMES 'utf8'", $this->_conn);mysql_query("SET CHARACTER SET utf8", $this->_conn);mysql_query("SET CHARACTER_SET_CONNECTION=utf8", $this->_conn);mysql_query("SET SQL_MODE=''", $this->_conn);}public function query($sql){$resource = mysql_query($sql);if ($resource) {if (is_resource($resource)) {$i = 0;$data = array();while ($result = mysql_fetch_assoc($resource)) {$data[$i] = $result;$i++;}mysql_free_result($resource);$query = new stdClass();$query->row      = isset($data[0]) ? $data[0] : array();$query->rows     = $data;$query->num_rows = $i;unset($data);return $query;} else {return true;}} else {exit('Error: ' . mysql_error($this->_conn) . '<br />Error No: ' . mysql_errno($this->_conn) . '<br />' . $sql);}}public function escape($value){return mysql_real_escape_string($value, $this->_conn);}public function get_last_id(){return mysql_insert_id($this->_conn);}public function __destruct(){mysql_close($this->_conn);}}


使用”SET NAMES utf8″,就是告诉服务器,我用的是utf-8编码, 我希望你也给我返回utf-8编码的查询结果。
mysql_real_escape_string() 和 mysql_escape_string() 的区别是, 它会考虑”当前”字符集 mysql->charset。
mysql_real_escape_string() 在判断宽字符集的字符的时候,就根据这个成员变量来分别采用不同的策略,比如如果是utf-8, 那么就会采用libmysql/ctype-utf8.c。

MySQL字符集设置

• 系统变量:

– character_set_server:默认的内部操作字符集

– character_set_client:客户端来源数据使用的字符集

– character_set_connection:连接层字符集

– character_set_results:查询结果字符集

– character_set_database:当前选中数据库的默认字符集

– character_set_system:系统元数据(字段名等)字符集



原创粉丝点击