如何在Wordpress数据透视表查询中正确转义单引号?

时间:2017-10-26 14:53:46

标签: php mysql wordpress

我有一个查询,我正在运行以返回一个数据透视表,它将wp_usermeta数据分类到列而不是带有键的行。当我直接从我的MySQL命令行运行它时,没有问题。它给我一行包含所有数据和正确的列标题。

$wpdb->get_results($wpdb->prepare(

    "SET SESSION group_concat_max_len = 1000000;                                                        
    SET @sql = NULL;                                        
    SELECT
        GROUP_CONCAT(DISTINCT
            CONCAT(
             'MAX(IF(meta_key = ''',
             meta_key,
             ''', meta_value, NULL)) AS ',
             LOWER(REPLACE(meta_key, 'babud_', '))
            )
        ) INTO @sql
    FROM wp_usermeta WHERE user_id = %d AND meta_key LIKE 'babud_%';
    SET @sql = CONCAT('SELECT ', @sql, ' FROM wp_usermeta WHERE user_id = %d GROUP BY user_id');

    PREPARE stmt FROM @sql;
    EXECUTE stmt;
    DEALLOCATE PREPARE stmt;", $user_id, $user_id
));

然而,当我通过Wordpress运行时,我似乎无法让它返回任何内容。

我怀疑这是我逃避单引号的方式,但我不确定。

有人说MySQL中的单引号应该被转义''一个单引号旁边的另一个。

其他人说使用\'还有人说要用\\'然后双重逃脱它。

尝试了以上所有内容后,我感到很茫然。

我应该如何正确地转义此查询,以便它从控制台返回相同的数据?

0 个答案:

没有答案