使用传统查询:
$form_id = Caldera_Forms::get_field_data( '_entry_id', $form );
$post_id_qry = mysql_query("SELECT `meta_value` FROM wp_cf_form_entry_meta WHERE entry_id = '$form_id' and meta_key = 'ID'");
$post_id = mysql_fetch_array($post_id_qry);
echo $post_id['meta_value'];
现在,当我转换为sprintf()以使其更安全并返回空白时。我已经尝试了语法检查,它恢复了干净。有什么想法吗?
$form_id = Caldera_Forms::get_field_data( '_entry_id', $form );
global $wpdb;
$post_id_qry = sprintf("SELECT `meta_value` FROM %s WHERE entry_id = %d and meta_key = 'ID'", $wpdb->prefix . 'cf_form_entry_meta', $form_id );
$post_id = $wpdb->get_results($post_id_qry);
echo $post_id['meta_value'];
答案 0 :(得分:0)
$wpdb->get_results()
返回查询所有结果的数组,而不仅仅是一行。默认情况下,行是对象,而不是关联数组。所以你需要这样做:
echo $post_id[0]->meta_value;
显示值。
如果要将单行作为关联数组,请使用:
$post_id = $wpdb->get_row(ARRAY_A);
echo $post_id['meta_value'];
请注意,WP没有类似mysql_fetch_array
的内容。 get_row
的选项为ARRAY_A
,类似mysql_fetch_assoc
,ARRAY_N
,类似mysql_fetch_row
。