PHP - Mysql và unicode

Liên hệ QC

levanduyet

Hãy để gió cuốn đi.
Thành viên danh dự
Tham gia
30/5/06
Bài viết
1,798
Được thích
4,704
Giới tính
Nam
Khi làm việc với PHP - MySQL, tôi gặp vấn đề: "Không thể hiện được unicode", tìm trên mạng, tôi thấy có giải pháp sau khắc phục được vấn đề. Xin giới thiệu cùng các bạn.

BƯỚC 1: THIẾT LẬP CHARSET SANG UTF-8 TRONG HEAD
Mã:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

BƯỚC 2: TẠO DATABASE
Dĩ nhiên nếu muốn dữ liệu của bạn lưu trữ unicode thì khi tạo ra CSDL các bạn phải
Khi bạn tạo ra CSDL hoặc các bảng trong CSDL, nhớ thiết lập Collationutf8_unicode_ci

BƯỚC 3: KHỞI TẠO DATABASE

Bước này được thực hiện trước khi bạn kết nối với CSDL, bạn có thể thêm các hàng sau:
Mã:
[COLOR="Red"]<?php
	define('HOSTNAME', 'localhost');
	define('USERNAME', 'database_user_name');
	define('PASSWORD', 'database_password');
	define('DATABASE', 'database_name');
	$dbLink = mysql_connect(HOSTNAME, USERNAME, PASSWORD);
	mysql_query("SET character_set_results=utf8", $dbLink);
	mb_language('uni');
	mb_internal_encoding('UTF-8');
	mysql_select_db(DATABASE, $dbLink);
	mysql_query("set names 'utf8'",$dbLink);
?>[/COLOR]
Tại sao phải thêm các hàng này? Bởi vì bạn cho CSDL biết, loại dữ liệu đưa bạn sẽ làm việc thuộc loại nào.

BƯỚC 4: THÊM DỮ LIỆU VÀO CSDL

Mã:
<?php
	[COLOR="Red"]mysql_query("SET character_set_client=utf8", $dbLink);
	mysql_query("SET character_set_connection=utf8", $dbLink);[/COLOR]
	$sql_query = "INSERT INTO
	TABLE_NAME(field_name_one, field_name_two)
	VALUES('field_value_one', 'field_value_two')";
	mysql_query($sql_query, [COLOR="Red"]$dbLink[/COLOR]);
?>

BƯỚC 5: CẬP NHẬT

Mã:
<?php
	[COLOR="Red"]mysql_query("SET character_set_client=utf8", $dbLink);
	mysql_query("SET character_set_connection=utf8", $dbLink);[/COLOR]
	$sql_query = "UPDATE TABLE_NAME
	SET field_name_one='field_value_one', field_name_two='field_value_two'
	WHERE id='$id'; ";
	mysql_query($sql_query, [COLOR="Red"]$dbLink[/COLOR]);
?>

BƯỚC 6: TÌM KIẾM TRONG CSDL

Mã:
<?php
	[COLOR="Red"]mysql_query("SET character_set_results=utf8", $dbLink);[/COLOR]
	$sql_query = "SELECT * FROM TABLE_NAME WHERE id='$id'; ";
	$dbResult = mysql_query( $sql_query, [COLOR="Red"]$dbLink[/COLOR]);
?>

Với cách làm này các bạn có thể thể hiện các ngôn ngữ khác (Hindi, Chinese, French, German, Spanish, Russian, Arabian (Arabic), Urdu...)trên trang web của mình.

Nguồn tại đây

Lê Văn Duyệt
 
Web KT
Back
Top Bottom