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
?