2016-12-05 2 views
2

Это ошибка я получаю:Ошибка в синтаксисе SQL приводит к ошибке базы данных

[У вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с '' в строке 1.

У меня нет ошибки. Я не могу найти его.

Это мой код:

function my_bp_adminbar_notifications_menu() { 
global $bp; 

if (!is_user_logged_in()) 
    return false; 

echo '<li id="top-notification">'; 
_e('Alerts', 'buddypress'); 

if ($notifications = bp_notifications_get_notifications_for_user($bp->loggedin_user->id)) { ?> 
    <span><?php echo count($notifications) ?></span> 
<?php 
} 

if ($notifications) { 
    $counter = 0; 
    for ($i = 0; $i < count($notifications); $i++) { 
     $alt = (0 == $counter % 2) ? ' class="alt"' : ''; ?> 

     <li<?php echo $alt ?>><?php echo $notifications[$i] ?></li> 

     <?php $counter++; 
    } 
} else { ?> 

Что здесь происходит? Я не вижу ни одной цитаты, которая может быть ошибочной.

+2

Я не вижу никакого кода, связанного с этим кодом –

+1

Это не тот код, который вы ищете. – bishop

+0

Интересно. Я просто увидел его сразу после того, как вставил этот код. Weird. Спасибо, ребята, я углубись в нее. – Siyah

ответ

1

Возможно, вы вызываете некоторые функции, которые в свою очередь запускают SQL-запросы. Я вижу, что вы вызываете две функции: is_user_logged_in(), которая является стандартной функцией в коде WordPress и bp_notifications_get_notifications_for_user(), которая является частью BuddyPress, плагина WordPress.

Я бы предположил, что код BuddyPress имеет ошибку кода. Я сделал поиск и обнаружил, что у них есть ряд отчетов об ошибках синтаксиса SQL, поэтому я думаю, что они недостаточно проверяют свой код.

Во-первых, вы должны обновиться до последней версии BuddyPress, чтобы узнать, исправлена ​​ли ошибка. Если проблема все еще существует, обратитесь в поддержку: https://buddypress.org/support/

Объясняя ошибку вы получили:

У Вас есть ошибка в вашем SQL синтаксиса; проверьте руководство, которое соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «» в строке 1

синтаксических ошибок в MySQL отчетом части запроса следующего точки, где синтаксис парсер запуталась. Например, если вы поставите лишнюю запятую в списке выбора:

SELECT a, b, c, FROM ... 

Ошибка синтаксис будет сообщить о проблеме возле «FROM», потому что ключевое слово неожиданно после запятой.

Если вы получили сообщение об ошибке синтаксиса около '', то это означает, что синтаксический анализатор запутался, когда он достиг конца SQL-запроса, потому что он не нашел ожидаемого. Это вызвано многими типами ошибок, например, потому что SQL не удалось закрыть круглую скобку или цитату или использовать ключевое слово clause без требуемого аргумента.

Вот некоторые возможные примеры синтаксической ошибки, что происходит в конце запроса:

SELECT * FROM mytable WHERE 
SELECT * FROM mytable WHERE col = 
SELECT * FROM mytable WHERE col = 'string 
SELECT * FROM mytable WHERE (x OR y 

В принципе, любой вид «незавершенного» синтаксис вызовет эту ошибку в конце.

+0

Спасибо, помощник! Нашел проблему ... это было в этом плагине. Теперь время, чтобы проверить, как я могу это исправить. https://buddydev.com/plugins/bp-notify-post-author-blog-comment/ – Siyah

Смежные вопросы