Intereting Posts
выдержка в символах Форма комментария двух шагов DROP TABLE IF EXISTS Ошибка `wp_options`? как создать категорию с кодом в wordpress с помощью формы Пользователи загружают изображение и сопоставляют идентификатор или таксономию Фильтрация записей дочерних категорий из родительской категории не работает Как отображать ID видео Youtube / Vimeo в пользовательском типе сообщений, когда пользователь вводит его в пользовательский мета-ящик? Как я могу получить slug страницы Как сделать кнопку, которая открывает медиа-загрузчик iframe? Заменить анкерную метку тегом span Как получить SimplePie fetch_feed без удаления кода iframe? Отправляйте данные редактору перед сохранением сообщения save_post для включения фильтра wp_insert_post_data, сбора информации о метаполе и предотвращения бесконечного цикла CPT: выполнить код после загрузки, если параметр установлен Настройка шаблона основного текста WordPress

Почему мой запрос не запускается с подготовкой

Привет Ниже мой запрос, и он работает с ключевым словом prepare на локальном хосте, но всякий раз, когда я использую ключевое слово prepare с моими запросами на реальном сервере, данные не отображаются, и как только я удаляю подготовку из запроса на реальном сервере, запрос работает. Поэтому я сделал это, чтобы сохранить мой сайт от SQL-инъекции. Поэтому, если что то, что я делаю неправильно. Я хороший и безопасный, чтобы подготовиться к живому серверу, потому что с подготовкой и мои данные ниже синтаксиса всегда показывают пусто. Спасибо людям.

$sqll = "SELECT Sum(votes.votes) AS votessum FROM votes WHERE votes.uid = '$uid' && votes.competition = '$comp'"; $reel = $wpdb->get_var($wpdb->prepare($sqll)) or die(mysql_error()); echo json_encode ($reel); die(); 

Это не то, как работает $wpdb->prepare . Вы загружаете prepare строки с помощью sprintf подобных заполнителей и соответствующие значения замещения.

Заполнители

Параметр запроса для подготовки принимает sprintf () – подобные заполнители. Поддерживаются форматы% s (строка),% d (целое число) и% f (float). (Области% s и% d были доступны, поскольку функция была добавлена ​​в ядро ​​в версии 2.3,% f была доступна только с версии 3.3.) Любые другие символы% могут приводить к ошибкам синтаксического анализа, если они не экранированы. Все% символов внутри строковых литералов SQL, включая подстановочные знаки LIKE, должны быть удвоены в% от %%. Все% d,% f и% s должны быть оставлены без кавычек в строке запроса. Обратите внимание, что заполнитель% d принимает только целые числа, поэтому вы не можете передавать числа с запятыми через% d. Если вам нужны значения запятой, вместо этого используйте% f как float.

В вашем случае я предполагаю, что это выглядит так:

 $sqll = "SELECT Sum(votes.votes) AS votessum FROM votes WHERE votes.uid = %d && votes.competition = %s"; $reel = $wpdb->get_var($wpdb->prepare($sqll,$uid,$comp));