我希望我的插件中的此函数在调用时返回数据。我现在只是想得到任何结果。它曾经是一个更具体的查询。
function ml_results() {
global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM wp_ml_char', OBJECT );
echo "<p>Your character's info {$results}</p>";
}
add_shortcode('ml_return', 'ml_results');
我没有运气返回并显示任何输出类型的任何内容。我也尝试过打印而不是回显。我还在 phpmyadmin 中测试了我的查询,效果很好。我得到的只是“ARRAY”。因此,$results 返回“你的角色的信息数组”。 Var_dump 也可以正常工作,但这并不是我希望显示数据的具体方式。所以我相信问题出在 WordPress 代码上,但我只是不确定代码到底是哪一部分。
最佳答案
您的结果以数组形式返回,这就是为什么它们不能作为字符串打印出来。实际上,您已经设置了标志 OBJECT,并且结果作为对象返回,其中包含 wp_ml_char 表中所有记录的字段值。 你应该尝试这样的事情:
function ml_results() {
global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM wp_ml_char', OBJECT );
$output = '';
foreach($results as $item){
//and then for each field in wp_ml_char table you want to set in output should append to $output var:
$output.= $item->field_name . " "; // field_name should be changed to name of actual field in wp_ml_char table
}
echo "<p>Your character's info {$output}</p>";
}
add_shortcode('ml_return', 'ml_results');
困扰我的另一件事是实际的 MySQL 语句,您没有定义更精确的条件,而您现在拥有的这个查询将返回 wp_ml_char 表中的所有结果,因此您还应该添加一些条件并且可能有一些限制和抵消。
关于mysql - echo mysql select 语句与 wpdb 显示无结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40441019/