Неожиданная ошибка T_CONSTANT_ENCAPSED_STRING в SQL-запросе
Я получаю неожиданную ошибку T_CONSTANT_ENCAPSED_STRING в следующем запросе SQL:
mysql_query (UPDATE 'wp_posts' SET 'post_status' = 'publish' WHERE 'post_id' = '$id');
Ребята, вы видите, где может быть ошибка?
Вот полный код на случай, если это поможет:
$key = 'feed';
$post_ids = array(2263, 2249);
foreach ($post_ids as $id) {
$feedurl = get_post_custom_values($key, $id);
$feedurlstr = implode($feedurl);
// Ignore - it determines whether feed is live and returns $result
LiveOrNot($feedurlstr);
if ( $result == "live" ) {
mysql_query (UPDATE 'wp_posts' SET 'post_status' = 'publish' WHERE 'post_id' = '$id');
}
elseif ( $result == "notlive" ) {
mysql_query (UPDATE 'wp_posts' SET 'post_status' = 'draft' WHERE 'post_id' = '$id');
}
endif;
}
2 ответа
Решение
Оберните ваши операторы SQL в кавычки - "
,
mysql_query ("UPDATE 'wp_posts' SET 'post_status' = 'publish' WHERE 'post_id' = '$id'");
mysql_query()
берет строку PHP ищет константы с вкраплениями строк, что недопустимо в грамматике PHP.
Вы должны разграничить свои строки, '
а также "
популярны, но есть и синтаксис Heredoc.