Я пробовал несколько вещей, но я не могу заставить работать запрос MySQL в моем php-коде.Обратите внимание, что запрос работает, когда я жестко закодировал переменную $ lastmsg, которая является целым числом.
Код работает в двух случаях:
- Когда страница загружается, запрос выполняется, игнорируя
$pagination
, поскольку $lastmsg
не установлено. - Кнопка отправляет значение lastmsg на эту страницу, которая снова запускает код, на этот раз, глядя на $ pagination, потому что lastmsg установлен.
Опять же, запрос РАБОТАЕТ.Доказательством является то, что он отлично работает в первом случае и правильно возвращается, когда переменные жестко закодированы.Firebugs сообщает, что lastmsg отправляется по почте.
Проблема в том, что запрос не получает значение для $ lastmsg (я не получаю возвращаемых значений).Я знаю, что это потому, что $ lastmsg находится внутри $ pagination.
PS Я знаю, что нужна защита от инъекций ... Я просто пытаюсь заставить это работать:
if(isset($_POST['lastmsg']) &&is_numeric($_POST['lastmsg'])){
$lastmsg = $_POST['lastmsg'];
$pagination = 'AND $wpdb->posts.ID < ".$lastmsg."';
} else {
$pagination = '';
}
$pageposts = $wpdb->get_results($wpdb->prepare("
SELECT * FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
WHERE $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_date < NOW()+INTERVAL 1 DAY
AND $wpdb->term_taxonomy.taxonomy = 'category'
AND $wpdb->term_taxonomy.term_id IN(3)
".$pagination."
ORDER BY $wpdb->posts.post_date DESC
LIMIT 10
"), OBJECT);
Следующее НЕ работает
$pagination = 'AND $wpdb->posts.ID < ';
$pageposts = $wpdb->get_results($wpdb->prepare("
SELECT * FROM $wpdb->posts
LEFT JOIN $wpdb->term_relationships ON ($wpdb->posts.ID = $wpdb->term_relationships.object_id)
LEFT JOIN $wpdb->term_taxonomy ON ($wpdb->term_relationships.term_taxonomy_id = $wpdb->term_taxonomy.term_taxonomy_id)
WHERE $wpdb->posts.post_status = 'publish'
AND $wpdb->posts.post_type = 'post'
AND $wpdb->posts.post_date < NOW()+INTERVAL 1 DAY
AND $wpdb->term_taxonomy.taxonomy = 'category'
AND $wpdb->term_taxonomy.term_id IN(3)
".$pagination."
".$lastmsg."
ORDER BY $wpdb->posts.post_date DESC
LIMIT 10
"), OBJECT);
Есть какие-нибудь решения?