作者ebliswu (□形的世界)
看板PHP
標題[請益] 如何上傳中文字串?
時間Wed Dec 19 22:13:40 2007
下面這段在用英文輸入時可正確上傳至資料庫。但無法用中文就上傳…請問要改哪?
用的是utf8的編碼…
<?php
require("dbinfo.php");
// Gets data from URL parameters
$name = $_GET['name'];
$address = $_GET['address'];
$lat = $_GET['lat'];
$lng = $_GET['lng'];
$type = $_GET['type'];
// Opens a connection to a MySQL server
$connection=mysql_connect ("localhost", $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Insert new row with user data
$query = sprintf("INSERT INTO markers " .
" (id, name, address, lat, lng, type) " .
" VALUES (NULL, '%s', '%s', '%s', '%s', '%s');",
mysql_real_escape_string($name),
mysql_real_escape_string($address),
mysql_real_escape_string($lat),
mysql_real_escape_string($lng),
mysql_real_escape_string($type));
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
?>
感謝回覆 m(_ _)m
--
看不見你的笑我怎麼睡得著…
你的呻吟這麼近我卻抱不到…
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 220.133.220.195
推 yuan0258:你用GET方式傳中文值時要先用urlencode編碼才不會出錯 12/19 22:15
→ ebliswu:類似$name = urlencode($_GET['name']);這樣處理嗎? 12/19 22:53
→ ebliswu:這樣沒有改善…還是只能輸入英文 12/19 22:55
推 JoeHorn:MySQL 版本? 資料庫表格編碼? 我沒看到 SET NAMES ... 12/19 23:23
推 davidboy12:黑阿 無法上傳中文是怎麼回事?是亂碼嗎?如果是的話 12/19 23:25
→ davidboy12:就加上mysql_query("SET NAMES BIG5"); 12/19 23:26
→ ebliswu:板本為4.1.22 MySQL 文字編碼: UTF-8 Unicode (utf8) 12/19 23:34
→ ebliswu:加了mysql_query("SET NAMES BIG5");還是一樣沒改善 12/19 23:35
→ ebliswu:輸入中文只多一行空白的資料表…連亂碼都沒有 感謝回覆! 12/19 23:35
→ ebliswu:上面打錯mysql_query("SET NAMES 'UTF8'"); 12/20 00:19
推 JoeHorn:你把 SET NAMES 加在哪? 12/20 01:24
→ JoeHorn:通常我們都用「SET NAMES 'utf8';」,我不確定大寫是否OK 12/20 01:25
→ ebliswu:我是加在$query = sprintf("INSERT INTO markers " .之前 12/20 08:18
推 mysteriousGE:我剛好遇到此問題 樓上的推文說得可用!大寫可! 12/22 23:19
→ mysteriousGE:非常感謝 <(_ _)> 12/22 23:19