我需要從一個特定的網路託管服務中訪問資料庫。頁面使用 UTF-8 編碼,表單接收的資料應在不更改編碼的情況下插入資料庫。資料庫也使用 UTF-8。
SET character set 'utf8' 或 SET names 'utf8' 在這裡不能正常工作,因此此變通方法確保所有變數都設定為 utf-8。
<?php
mysql_query("SET character_set_results = 'utf8', character_set_client = 'utf8', character_set_connection = 'utf8', character_set_database = 'utf8', character_set_server = 'utf8'", $conn);
$re = mysql_query('SHOW VARIABLES LIKE "%character_set%";')or die(mysql_error());
while ($r = mysql_fetch_assoc($re)) {var_dump ($r); echo "<br />";} exit;
?>
現在所有重要的變數都是 utf-8,我們可以安全地使用 INSERT 或 SELECT 與 mysql_escape_string($var) 一起使用,而無需任何編碼函式。