执行包含URL编码字符串的MySQLi搜索

时间:2017-01-05 17:02:54

标签: php select mysqli field url-encoding

当字段包含URL编码字符串时,我无法从数据库中检索数据。

我的意思是,我的MySQLi数据库包含一个名为“artist_name”的字段,其中一些值包含URL编码的字符串,例如:

  • “索尼+的O'奥布莱恩”
  • “律&安培;#39; +乔”
  • “蝙蝠侠+&放大器;放大器; +罗宾”

当我在PhpMyAdmin中搜索这些字段时,它会立即使用select语句找到它们:

SELECT * FROM `artists` WHERE `artist_name` LIKE 'Sonny+O'Brien';

但是,当我以编程方式尝试相同的操作时,从我的PHP脚本中,它不会返回任何结果:

$artist_name = "Sonny+O'Brien";
$sql = "SELECT * FROM artists WHERE artist_name LIKE '".$artist_name."'";
if ( $result = $mysqli->query( $sql ) ) {
    $obj = $result->fetch_object();
}

没有结果。

我尝试在艺术家的名字上使用了addslashes(),并且我已经仔细检查了所有的值,并且我提供的正好与数据库中显示的一样。

我的SELECT查询无法识别URL转义字符串的任何想法吗?

编辑: screenshot (来自PhpMyAdmin的屏幕截图,显示我的数据按照描述存储,并且我的SELECT查询在PhpMyAdmin中工作,而不是从我的PHP脚本中工作)。

0 个答案:

没有答案