我正在从atom-xml提要url获取数据。我正在使用Rss提要解析数据并将其存储到数据库中。在存储数据之前,我对每个变量都使用mysql_real_sescape_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开发人员,当我在查询框中准确搜索该词时,我没有得到结果。
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_sescape_string并存储数据时,我就能正确地获得结果。我得到了确切的结果。但在一些记录存储后将数据存储到数据库时,由于数据中的引用而停止了存储。
请帮我解决这个问题。
我认为您的数据可能会保存为任何换行符或带空格的制表符。
使用REPLACE。这将删除所有回车和换行:
SELECT REPLACE(REPLACE(log, 'r', ''), 'n', '') FROM test;
如果您只想放下拖尾回车和换行,您可以使用TRIM代替:
SELECT TRIM(TRAILING 'rn' FROM log) FROM test;
这个链接可能对MySQL有用从列中删除尾部换行符
您应该做的最好的事情就是使用PHP PDO。它更易于使用,而且全是面向对象的,这使您的编程更快速、更干净。
http://php.net/manual/en/book.pdo.php