在Wordpress中选择Mysql Meta_Value

Why the result return is null? What is wrong? If I use this consult on directly phpmyadmin, the result is correctly.

<?php $postid = get_the_ID(); ?>

<?php
$get_thumb = $wpdb->get_var
( "SELECT meta_value FROM `wp_postmeta` WHERE `post_id` = $postid AND  `meta_key` = '_wp_attached_file'" );
echo "<p>Thumb URL: {$get_thumb}</p>";
?>

PhpMyAdmin Consult!

I'd suggest using the $wpdb->prepare() statement to ensure the SQL query is generated correct and the $get_thumb variable is correctly set in the query.

$postid = get_the_ID();
$get_thumb = $wpdb->get_var($wpdb->prepare( 
 "SELECT meta_value FROM `wp_postmeta` WHERE `post_id` = %s AND  `meta_key` = '_wp_attached_file'",$postid));
echo "<p>Thumb URL: {$get_thumb}</p>";

Again you can always log the SQL string generated by prepare() to ensure it matches your expectations. See https://codex.wordpress.org/Class_Reference/wpdb#Examples for more examples.

I think your syntax has some trouble, so here's your original query revised.

<?php
     $get_thumb = $wpdb->get_var( 
         "
          SELECT meta_value 
          FROM wp_postmeta 
          WHERE post_id = " . $postid . " AND meta_key = _wp_attached_file
         "
      );
      echo "<p>Thumb URL: {$get_thumb}</p>";
?>

I made sure the PHP is echoing correctly inside the query - I am not sure if that's a problem you were having.

I do recommend the prepared query too. Here is it with what I think is correct syntax (I found it was helpful to prepare items by putting them in a $query_arg_array). See https://codex.wordpress.org/Class_Reference/wpdb.

$postid = get_the_ID();
$query_arg_array = [$postid];
$get_thumb = $wpdb->get_var($wpdb->prepare( 
 "
  SELECT meta_value 
  FROM wp_postmeta 
  WHERE post_id = %d AND meta_key = _wp_attached_file
  ",
  $query_arg_array
));

echo "<p>Thumb URL: {$get_thumb}</p>";

If that prepared query didn't work, try putting $postid directly as argument instead of the $query_arg_array.

Remember SQL is super sensitive so even an extra space can throw off your query.