Intereting Posts
Проблема Кадрирование изображений из WP Customizer Добавить поддержку темы для эскизов сообщений Что такое хороший способ передать переменную из add_action в тему? Показать сообщение автора для пользовательского типа сообщения в окне редактирования-публикации Ограничение активных сеансов с помощью WP Bouncer – проблемы с пользователями тонких клиентов Ограничение Innodes заканчивается на общедоступном сайте WordPress Как показать массивы ошибок на странице формы для регистрации и входа в систему (woocommerce)? Сделайте поиск запроса запроса WP точно в соответствии с поисковым термином Изменить шаблон страницы комментария WordPress Обработка десятков боковых панелей WordPress для бизнес-сайта Пользовательское поле пользователя в виджет панели мониторинга Вызов сообщений wp_query $ вызывает ошибку 500 написав уникальную функцию php, которая будет использоваться на моем веб-сайте Как удалить черновики страниц без влияния на опубликованную страницу

Ошибка базы данных WordPress – Ошибка в синтаксисе SQL – я не могу определить какую-либо ошибку?

Я пытаюсь написать функцию, которая проверяет, сохранен ли адрес электронной почты в моей базе данных. Я написал следующий код PHP ::

function check_my_users( $email_address ) { global $wpdb; $my_table_name = $wpdb->prefix . 'my_users'; $result = $wpdb->get_var( $wpdb->prepare( 'SELECT email FROM %s WHERE email = %s', $my_table_name, $email_address ) ); if( $result !== NULL ) return true; return false; } 

Функция всегда возвращает false. Кроме того, после вызова функции печатается следующий запрос: SELECT email FROM 'wp_my_users' WHERE email = 'mail@example.com' .

Кроме того, в журнал отладки записывается следующее:

 WordPress database error You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''wp_my_users' WHERE email = 'mail@example.com'' at line 1 for query SELECT email FROM 'wp_my_users' WHERE email = 'mail@example.com' made by […] 

(Я добавил элипсис)

Что не так с моей функцией, почему я получаю эту ошибку? Для меня все выглядит хорошо.

Solutions Collecting From Web of "Ошибка базы данных WordPress – Ошибка в синтаксисе SQL – я не могу определить какую-либо ошибку?"

Вы хотите, чтобы запрос выглядел следующим образом:

 SELECT email FROM wp_my_users WHERE email = 'mail@example.com' 

вместо этого:

 SELECT email FROM 'wp_my_users' WHERE email = 'mail@example.com' 

Поэтому попробуйте построить свой запрос с помощью:

  $sql = "SELECT email FROM {$my_table_name} WHERE email = %s"; $result = $wpdb->get_var( $wpdb->prepare( $sql, $email_address ) ); 

где вам не нужно избегать имени таблицы, так как оно построено безопасным способом.