mysql - Mysql 中的字符串精确比较

标签 mysql sql

我的 Mysql 数据库中有以下几列,

 id, item_link, item_title, item_desc, created_date

在 Item_title 中,它包含项目的标题,因此我想使用以下查询检查项目标题是否已存在于数据库中,

$title = "Egyptair \'Black Box\' Reveals Smoke Alert on Crashed Jet";

SELECT * FROM  `rss_feeds` WHERE  `item_title` =  '$title'

上面的tiltle已经存在于数据库中,但即使通过编写这样的查询它也会返回

MySQL returned an empty result set (i.e. zero rows). ( Query took 0.0004 sec )

但是这个标题出现在 item_title 列中,任何人都可以建议我如何比较字符串并使用 Mysql 查询检索答案。

最佳答案

最好使用bind和prepare语句。它会转义你的字符串并防止你形成sql注入(inject)

$title = "Egyptair \'Black Box\' Reveals Smoke Alert on Crashed Jet";
$stmt = $mysqli->prepare("SELECT * FROM  `rss_feeds` WHERE  `item_title` =?");
 $stmt->bind_param('s', $title);
 /* execute prepared statement */
$stmt->execute();

阅读http://php.net/manual/en/mysqli-stmt.bind-param.php

关于mysql - Mysql 中的字符串精确比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38119769/

相关文章:

php - MySQL 表 - 如何在十亿行表上快速插入?

mysql - 如何在 MySql 中使用 Group By 实现以下结果?

具有无限子类别的 PHP 和 Mysql 树形导航菜单

mysql - 如何在 CURRENT_TIMESTAMP MySQL 中添加 24 小时?

mysql - MySQL如何执行有限制的聚合查询?

sql - postgresql/psql 查询 where 子句多个 "or"从文件读取

php - 如何在一个查询中从三个表中进行选择

mysql - 将表结果作为文本列

java - Jooq 自动生成结果为 "SELECT command denied to user ... for table ' proc'

mysql - 如何获取表中连续记录之间的天数?