我从atom xml feed url获取数据。我正在使用Rss feed解析数据并存储到数据库中。在存储数据之前,我正在为每个变量使用mysql_real_escape_string。
function endElement($parser, $tname)
{
if ($tname == "ENTRY") {
$job_id=explode('job/',$this->id);
$job_title1=mysql_real_escape_string($this->title);
$job_title=$job_title1;
}
}
解析后我将数据存储到数据库中
mysql_query("INSERT INTO tbl_job (job_id,job_title) values ('$job_id',' $job_title');
我使用表格排序作为utf8_general_ci。因为我正在修饰和英语文本。 这完全正常。 但问题是当我搜索确切的单词然后我没有得到那个工作。
例如:假设在表格中有些记录将job_title记录为 php developer ,当我在查询框中搜索该单词时,我没有得到结果。
select * from tbl_jobs where job_title like 'php developer'
当我使用%时,我会得到结果。
select * from tbl_jobs where job_title like 'php developer%'
但是job_title包含 php开发者,但结果不会出现
当我删除MySQL_real_escape_string并存储数据时,我正确地得到结果。我得到了确切的结果。但是在存储了一些记录之后将数据存储到数据库中时,存储停止了数据中的引用。
请帮我解决这个问题。
答案 0 :(得分:0)
我认为您的数据可能会保存为任何换行字符或带空格的制表符。
使用 REPLACE 。这会丢弃所有回车和换行:
SELECT REPLACE(REPLACE(log, '\r', ''), '\n', '') FROM test;
如果你只想放弃尾随回车和 换行,您可以改为使用TRIM:
SELECT TRIM(TRAILING '\r\n' FROM log) FROM test;
答案 1 :(得分:0)
你应该做的最好的事情是使用PHP PDO。它更易于使用和所有面向对象,使您的编程更加快速和干净。