Получение пустой страницы при использовании $wpdb в шаблоне Wordpress
Я пытаюсь создать шаблон Wordpress с пользовательским php-кодом, который соединяет пользовательскую таблицу в базе данных Wordpress, но на нем отображается пустая страница для этого кода
<?php
/*
Template Name: JNTU
*/
?>
<?php
function doSomething() {
global $wpdb;
$current_user = wp_get_current_user();
if ( 0 == $current_user->ID ) {
// Not logged in.
} else {
$id = $_POST['ID'];
$add = $wpdb->prepare("SELECT SUM(tech) AS tech4 FROM (
(SELECT SUM(tm) AS tech FROM jbit WHERE id = :id)
UNION ALL
(SELECT SUM(tm) AS tech FROM hmm WHERE id = :id))t1");
$add -> execute(array(':id'=>$id));
echo " <center><table id='mytable' cellspacing='0' border=3 align=center>
<tr><TH scope='col'>Total Marks</TH> </tr><center>";
while ($row1 = $add->fetch(PDO::FETCH_ASSOC))
{
echo "<tr>";
echo "<td align=center>" . $row1['tech4']. "</td>";
echo "</tr>";
}
}
}
?>
Любая идея???
1 ответ
Это не так $wpdb->prepare
работает. $wpdb->prepare
берет строку и возвращает строку. И нет метода execute в $wpdb
учебный класс. Проверьте Кодекс. То, что вы хотите, это:
$wpdb->get_results(
$wpdb->prepare("SELECT SUM(tech) AS tech4 FROM (
(SELECT SUM(tm) AS tech FROM jbit WHERE id = %d)
UNION ALL
(SELECT SUM(tm) AS tech FROM hmm WHERE id = %d)
)",$id,$id)
);
В основном это printf
синтаксис, но без частей "нумерация значений / перестановка значений" - то есть, этот тип вещи -%2$s
, $wpdb->prepare
это полезно, но не здорово из-за этого.