Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在查询中使用变量时,MySQL查询不起作用_Php_Sql_Wordpress - Fatal编程技术网

Php 在查询中使用变量时,MySQL查询不起作用

Php 在查询中使用变量时,MySQL查询不起作用,php,sql,wordpress,Php,Sql,Wordpress,我遇到了一个奇怪的问题,我的MySQL查询适用于除一个特定数据项之外的所有情况 我的问题是: SELECT * FROM wp_songs WHERE album_name = '{$current_album}' 此查询被输入Wordpress$wpdb->get_results()函数。出于某种原因,它永远找不到这个特定的数据条目:“原始和未剪切:混合磁带” 但是,如果查询改为: SELECT * FROM wp_songs WHERE album_name = 'Raw & U

我遇到了一个奇怪的问题,我的MySQL查询适用于除一个特定数据项之外的所有情况

我的问题是:

SELECT * FROM wp_songs WHERE album_name = '{$current_album}'
此查询被输入Wordpress$wpdb->get_results()函数。出于某种原因,它永远找不到这个特定的数据条目:“原始和未剪切:混合磁带”

但是,如果查询改为:

 SELECT * FROM wp_songs WHERE album_name = 'Raw & Uncut: The Mixtape'
找到的数据没有问题

在这两种情况下,运行$wpdb->last_query函数返回完全相同的行

问题只针对一个数据条目。我无法复制其他数据项的问题。所有其他条目都适用于我的原始查询

更多代码:

这不起作用:

 $current_album = "Raw & Uncut: The Mixtape";
 $songs = $wpdb->get_results("SELECT * FROM wp_songs WHERE album_name = '{$current_album}'")
if ( $songs ) { echo "Works"; }
这项工作:

  $songs = $wpdb->get_results("SELECT * FROM wp_songs WHERE album_name = 'Raw & Uncut: The Mixtape'");
  if ( $songs ) { echo "Works"; }
同样,它只适用于特定的数据输入。其他每个条目都适用于这两个查询

运行var_dump($current_album)返回:


您发布了var_转储$current album的结果:

字符串(28)“原始和未切割:混合磁带”

“原始和未剪切:混合磁带”只有24个字符-这告诉我,您的变量实际上包含以下内容:

Raw&;未剪切:混合磁带


与数据库中的不匹配。您可以通过在相册变量上运行html_entity_decode()来更正它。

请显示所有相关代码使用不包含特殊字符的字符串尝试此构造。我认为是th“&”和“:”造成了问题。它适用于不包含特殊字符的字符串,但在我不使用变量时也适用。我认为这就是Panique所认为的情况。这将表明wordpress扩展例程中存在错误。是否尝试使用like<代码>从专辑名称为“.”的wp_歌曲中选择*。$search.“%”
string(28) "Raw & Uncut: The Mixtape"