WordPress元API用于从wp_postmeta 表,但API不提供检索post ID的函数(post_id 值),但您可以在代码中使用自定义SQL。
然而$wpdb->get_col() 返回一个值数组(如果成功),这就是为什么在执行此操作时会得到“数组”echo $get_values;.
所以你可以这样做:
$post_ids = $wpdb->get_col( $prepare_guery ); // returns an array of IDs on success
$post_id = $post_ids[0]; // simplified - assuming that $post_ids[0] is actually set
var_dump( $post_ids ); // for testing
或者(更简单的选项),如果只想检索单个值,则应使用
$wpdb->get_var():
$post_id = $wpdb->get_var( $prepare_guery ); // returns a string (an ID) on success
附加注释
$prepare_guery = $wpdb->prepare( "SELECT post_id FROM $tbl WHERE meta_key =\'patientid\' AND meta_value LIKE $thevalue", $meta_value );
应为:
$prepare_guery = $wpdb->prepare( "SELECT post_id FROM $tbl WHERE meta_key =\'patientid\' AND meta_value LIKE %s", $wpdb->esc_like( $thevalue ) );
一、 e.注意
%s (占位符)并且我还使用
$wpdb->esc_like(). 我还意识到
$meta_value 没有在代码中定义,因此我将其(在上面的代码中)更改为
$thevalue.
在之前的修订中,我把$prepare_guery 像$prepare_query... 或者你是说$prepare_query ?