Intereting Posts
Отфильтруйте по одному идентификатору поля, по его диапазону значений, CMB2 Исключить текущий пользовательский пост в одном сообщении Перемещенный мой сайт WordPress, и теперь он не может прочитать тему Создайте учебник WP для пользователей с указателем администратора, используя следующую кнопку для навигации DIR против URI при определении пути к файлу Предупреждение: join (): недопустимые аргументы, переданные в post-template.php Пользовательская структура HTML в wp_list_categories как я могу увеличить размер избранных миниатюр? Доступ к API с помощью jQuery и AJAX Настроить запрос для публикации Удалить и добавить класс с помощью функции body_class () do_shortcode в пределах короткого кода Как передать файл изображения в wp_handle_upload? Попытка добавить cat_ID в массив для показа изображения для определенной категории Идентификаторы дочерних категорий групп, основанные на их родительской категории

Ошибка базы данных 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 ) ); 

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