我希望这不是多余的-但似乎总是有足够多的不同,我无法让事情顺利进行。
我正在我的functions.php
文件-所有其他功能工作正常。
$query = $mydb->get_results("select * from table");
//这在mysql中运行得很好,我可以做count(*)之类的事情并将其报告回来。
但无论出于什么原因,我都无法让表返回输出到wordpress页面的结果
return "$query";
return "$query[0]";
return "$query["wk"]";
在任何页面上显示的唯一输出是我期望输出的单词数组。
所以像这样的工作非常完美-
function VtVML_visitor(){
$home = get_field(\'home\');
$visitor = get_field(\'visitor\');
$mydb = new wpdb(\'OMMITTED\');
$hWins = $mydb->get_var("SELECT count(*) FROM `table` where v = \'$home\' and h = \'$visitor\' and h_ml_win = 1");
$hLoss = $mydb->get_var("SELECT count(*) FROM `table` where v = \'$home\' and h = \'$visitor\' and h_ml_loss = 1");
$hTie = $mydb->get_var("SELECT count(*) FROM `table` where v = \'$home\' and h = \'$visitor\' and h_ml_tie = 1");
$vWins = $mydb->get_var("SELECT count(*) FROM `table` where h = \'$home\' and v = \'$visitor\' and v_ml_win = 1");
$vLoss = $mydb->get_var("SELECT count(*) FROM `table` where h = \'$home\' and v = \'$visitor\' and v_ml_loss = 1");
$vTie = $mydb->get_var("SELECT count(*) FROM `table` where h = \'$home\' and v = \'$visitor\' and v_ml_tie = 1");
$tWins = $vWins+$hWins;
$tLoss = $vLoss+$hLoss;
$tTie = $vTie+$hTie;
return "$visitor vs $home overall:<br>$tWins - $tLoss - $tTie";
$mydb -> close();
}
add_shortcode(\'VtVML\',\'VtVML_visitor\');
但如果我将其重新调整为新的短代码,并更改查询以提取特定字段:
$schedule = $mydb->get_var("SELECT wk,v,h FROM `table` where h = \'$home\'");
return "$schedule";
我看到上面描述的错误。我假设我需要执行foreach或while命令,但所有使用这些命令的尝试都没有产生结果。
SO网友:Tom J Nowell
我看到上面描述的错误。我假设我需要执行foreach或while命令,但所有使用这些命令的尝试都没有产生结果。
是的,短代码返回字符串,而不是数组/列表。您需要将数组/列表转换为单个字符串。然而get_var
假设一个结果。如果需要多个结果,则需要使用允许多个结果的不同WPDB方法,例如get_results
:
<?php
global $wpdb;
$results = $wpdb->get_results( "SELECT * FROM {$wpdb->prefix}options WHERE option_id = 1", OBJECT );
代码还需要使用
$wpdb->prepare
在SQL语句中插入变量。E、 g.:
$wpdb->query(
$wpdb->prepare(
"
INSERT INTO $wpdb->postmeta
( post_id, meta_key, meta_value )
VALUES ( %d, %s, %s )
",
10,
$metakey,
$metavalue
)
);
请注意
$metakey
和
$metavalue
变量不在字符串中,因为这是不安全的。相反,它们有占位符
%s
替换为经过清理的版本,以防止它们破坏查询或插入恶意值
See the official docs for examples on using get_results