在Java中,我將String
傳遞給PHP。處理從Java到PHP到MySQL的字符編碼
在PHP中,我接受該字符串並使用MySQL
查詢進行搜索。
這裏是PHP代碼:
$query = $database->escape_value(trim($_POST['query']));
$result = mysqli_query($dbconnection, Data::getSearchQuery($query));
while ($row = mysqli_fetch_assoc($result)) {
$output[] = $row;
}
print(json_encode($output));
mysqli_close($dbconnection);
public static function getSearchQuery($item_query) {
$query = "
SELECT i.item, i.item_id, c.category, c.cat_id
FROM items as i
LEFT JOIN master_cat AS c
ON (c.cat_id = i.cat_id)
WHERE i.item LIKE '%{$item_query}%'
ORDER BY i.item ASC;";
return $query;
}
,如果我在我的美國鍵盤上使用常規字符這始終有效。但是當我開始使用不規則字符時,搜索變爲空白。
我可以驗證MySQL
存儲數據作爲用戶輸入它。所以如果他們輸入Beyoncè
,那就是數據庫存儲它的方式。
但是,當我在上面的代碼中搜索Beyoncè
(或其他)時,它將返回空。
我應該如何處理字符。編碼在這裏?
你應該使用存儲過程,而不是你的php代碼中的SQL,如果你不小心可以允許sql注入攻擊 – Patashu 2013-04-30 23:42:52