Intereting Posts
как захватить первую ссылку в сообщении … и, конечно, назовите ее Использование spl_autoloading в плагине WordPress Сайт WordPress взломан. Был ли взломан .htaccess? Как показать сообщения thumbnail в dashboard все строки сообщений в первом столбце? Как изменить ссылку «больше» в фиде Есть ли способ включить модуль Jetpack через `functions.php` Как я могу вызвать функцию плагина из пользовательского шаблона? подсчитывать количество просмотров сообщения, исключая собственные просмотры register_post_type не работает в wordpress 3.6 Программно выбирать язык для перевода Добавить класс в кнопку «Ответить» в области комментариев Переключатель страны, затем вариант выбора языка для этой страны Должен ли я использовать пользовательские типы сообщений или настраиваемые таблицы базы данных для разработки плагинов? Echo do shortcode с настраиваемым полем не работает Могу ли я отказаться от 3,7,1 от 3,8, просто справляясь с старыми wp-файлами?

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

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