如何在wordpress的wpdb全局变量中使用LIKE sql通配符?

时间:2016-08-19 12:43:07

标签: php mysql wordpress

<?php   
global $wpdb;   
global $current_user;   
$review_title = isset($_GET['abc'])?$_GET['abc']:'test';
$review_titles = $wpdb->get_results( $wpdb->prepare("SELECT ch_listing.listingId,organizationName, logoUrl, organizationType,reviewId, reviewTitle,reviewDate FROM ch_listing LEFT JOIN ch_review ON ch_listing.listingId = stakeholderId WHERE (reviewTitle LIKE %s);" '%'.like_escape($review_title).'%')));  
?>

返回null。我的代码出了什么问题?是否有人可以帮助我如何在wpdb->get_results wordpress中使用LIKE sql通配符?

3 个答案:

答案 0 :(得分:1)

global $wpdb;
global $current_user;

$review_title =isset($_GET['abc'])?$_GET['abc']:'test'; $review_titles = $wpdb->get_results( $wpdb->prepare(
"SELECT 
        ch_listing.listingId
        ,organizationName
        ,logoUrl
        ,organizationType
        ,reviewId
        ,reviewTitle
        ,reviewDate
 FROM 
        ch_listing
         LEFT JOIN 
            ch_review 
          ON ch_listing.listingId = stakeholderId
 WHERE 
        (reviewTitle LIKE %s);" '%'.like_escape($review_title).'%'))); 

很难说明,因为LIKE %s LIKE '%s'可能有帮助,LIKE '%%%s%%'

解决此问题的最佳方法是开始讨论大量的代码并查看何时开始获得结果。就像带走WHERE条款

一样

答案 1 :(得分:0)

这是答案! $ review_title =&#34;示例&#34 ;; $ review_titles = $ wpdb-&gt; get_results($ wpdb-&gt; prepare(&#34; SELECT ch_listing.listingId,organizationName,logoUrl,organizationType,reviewId,reviewTitle,reviewDate FROM ch_listing LEFT JOIN ch_review ON ch_listing.listingId = stakeholderId WHERE reviewTitle喜欢%s&#34;,&#39;%&#39;。$ review_title。&#39;%&#39;));

上面代码中的棘手问题是:$ wpdb-&gt; get_results($ wpdb-&gt; prepare(argument1,argument2))接受两个参数,如argument1和argument2,第一个参数是下一个参考。假设我传递一个字符串,所以我应该使用%s,但如果我想传递参数整数,我应该使用%d,最后变量的值可以是字符串或整数值。

希望对于你们所有人来说都很好的工作是在wordpress中使用LIKE通配符!!!

非常感谢。

答案 2 :(得分:0)

$reviewers_title = $wpdb->get_results(  $wpdb->prepare("SELECT chve_users.ID, display_name,userType, reviewId, reviewTitle, reviewDate FROM chve_users RIGHT JOIN ch_review ON chve_users.ID = reviewerId WHERE display_name LIKE  %s",'%'.$reviewer_name.'%'));

工作正常