处理mysql中的特殊字符

时间:2012-07-27 00:43:44

标签: php mysql

我有2个mysql表propertybuilding。在property表中,我有一个名为unitnumber的字段,此字段中的值类似于1a2b等。在building表格中,我有一个字段名为address的{​​{1}} PHP's格式。该值将类似于urlencoded

现在我想实现一个搜索功能,以便在用户输入26+Dovedale+Place%2C+Parnell时我需要从数据库中提取结果。

迄今已实施:

1a, 26 Dovedale

但现在的问题是,当我准备 $keyword = preg_replace('/[^a-zA-Z0-9-]/', '', $_REQUEST['keyword']); $keyword = str_replace(" ", "-", $keyword); $a->rqNotEmpty('keyword', $keyword); $query = "SELECT * FROM `buildings` b left join properties p on p.buildingId=b.id WHERE concat(p.floor,p.number,b.address) LIKE '%".$keyword."%' or concat(p.number,p.floor,b.address) LIKE '%".$keyword."'"; 变量时,我会得到类似$keyword的内容,而1a26Dovedale之后的数据库中的值将是CONCAT之类的某些值。我不能urlencode $ keyword,因为数据库不是标准化的形式。数据库我的地址之间有2个空格。那么有没有办法1a26+Dovedale+Place%2C+Parnell mysql字符串?我在这里处理近400万条记录!!

1 个答案:

答案 0 :(得分:1)

您可以尝试安装MySQL UDF(用户定义函数)以在MySQL中提供urlencode()urldecode()函数。这是链接:http://freecode.com/projects/libmysqludf