1

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

这是我的查询:

SELECT * FROM wp_songs WHERE album_name = '{$current_album}'

这个查询被输入到 Wordpress 的 $wpdb->get_results() 函数中。由于某种原因,它永远找不到这个特定的数据条目:“Raw & Uncut: The Mixtape”

但是,如果查询改为:

 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) 返回:

string(28) "Raw & Uncut: The Mixtape"
4

1 回答 1

3

您发布了 var_dumping $current 专辑的结果:

string(28) “原始与未剪辑:混音带”

“Raw & Uncut: The Mixtape”只有 24 个字符 - 这告诉我你的变量实际上包含以下内容:

Raw & Uncut: The Mixtape

这与您在数据库中的内容不匹配。您可以通过在专辑变量上运行 html_entity_decode() 来纠正它。

于 2012-08-03T00:57:45.070 回答