這是我的PDO function
問題敘述:
php版本為5.3.3
使用google瀏覽器的狀況:
1.查詢英文數字都很正常
2.查詢中文就會顯示 Successfully but no result ,sql語法顯示正常
使用IE瀏覽器的狀況
1.查詢英文資料都很正常
2.查詢'路過'的話 sql 語法會變成查詢 '˜H‰ß'
上網爬了兩個方法
使用google瀏覽器的狀況:
1.html的 meta =>utf8 這個無作用,還是一樣
2.加入$db->query("set names utf8"); =>變成整個空白
以下是我的PDO function:
程式碼php的部分
function DB($sql){
$pgdbname = "bb";
$pgdbip = "xxx.xxx.xxx.xx";
$pguser = "root";
$pgpass = "11";
$db = new PDO("mysql:dbname=$pgdbname;host=$pgdbip", $pguser, $pgpass );
$rs = $db->query($sql);
$arr = $db->errorInfo();
if ( !$rs && $arr[0] != 0) {
echo " $sql \n";
print_r($arr);
echo "";
}elseif($rs && $arr[0] == 0) {
if ($rs->rowCount() == 0) echo " Successfully but no result! ";
return $rs->fetchall(PDO::FETCH_ASSOC);
}
}
if($_GET or $_POST){
$onemonthago = mktime(0, 0, 0, date("m")-1, date("d"), date("Y"));
/* Statement Box Begin /
$aid_statement=($_REQUEST[char_name])?"$_REQUEST[char_name]":"";
/ Statement Box End */
$sql = "select * from XXXXX where char_name = '$aid_statement';";
echo $sql;
$rs_arr=DB($sql);
foreach($rs_arr as $row ) {
$rs_row[]=$row;
}
$col_name=array_keys($rs_row[0]);
}
您的PHP太舊了, 建議不要使用, 如果真要用, 請加入粗體字部份:
$db = new PDO("mysql:dbname=$pgdbname;host=$pgdbip", $pguser, $pgpass );
$db->exec("set names utf8");
...