我遇到了一个奇怪的问题,我的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"
答案 0 :(得分:3)
您发布了var_dumping $ current album的结果:
string(28)" Raw&未切割:Mixtape"
" Raw&未切割:Mixtape"只有24个字符 - 告诉我的是你的变量实际上包含这个:
Raw & Uncut: The Mixtape
哪个与数据库中的内容不匹配。您可以通过在相册变量上运行html_entity_decode()来更正它。