- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Все что нужно знать о DDоS-атаках грамотному менеджеру
И как реагировать на "пожар", когда неизвестно, где хранятся "огнетушители
Антон Никонов
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Привет всем знатокам Wordpress
Пол дня не могу найти проблему.
Есть mysql запрос для добавления в БД
Суть скрипта в том что есть два урл, скрипт берет содержимое УРЛ и доабавляет его в бд в колонку
page_data
Содержимое страницы беру через wp_remote_get.
$res = wp_remote_get( $http, $args );
$resp_src = $res["body"];
Далее в добавляю содержимое в БД
$res = $wpdb->insert( $table_name,
array( 'date' => time(), 'site_id' => $url_id, 'response' => $resp_code, 'ping' => $load_time, 'page_data' => $resp_src , 'replace' => serialize( $out_array_kw ) ),
array( '%s', '%s', '%s', '%s', '%s', '%s' ) );
Для УРЛ 1 все прекрасно работает и содержимое добавляется в БД, для второго - нет. $res возвращается как false
$wpdb->show_errors();
$wpdb->print_error();
Не возвращает ошибки.
Думал трабл в том что размер страницы не влазит в БД но поле longtext тоесть проблем не должно быть.
Была задумка что есть какие то не правильные символы которые мешают запросу - пробовал добавить - htmlentities($resp_src ) - запрос выполняется и запись добавляется но поле пустое.
Пробовал переписать запрос через $wpdb->prepare
$wpdb->prepare("INSERT INTO $table_name (`id`, `date`, `site_id`, `response`, `ping`, `page_data`, `replace`) VALUES (NULL, %s, %s, %s, %s, %s, %s);", time(), $url_id, $resp_code, $load_time, $resp_src, serialize( $out_array_kw ) )
но результат тот же.
Но если дампонуть результат $wpdb->prepare и выполнить запрос через phpmyadmin sql - то все добавляется правильно.
Может кто подсказать хоть в какую сторону рыть? А то уже совсем застрял.
Спасибо всем и + в карму :)
http://wordpress.stackexchange.com/questions/179058/why-wpdb-show-errors-and-print-error-is-showing-an-output-even-if-the-quer
Все таки стоит сначала разобраться с ошибкой
Пробовал, возвращает пустую строку
voodoo911, А если убрать в вашем запросе null? Полчается же, что вы запрашиваете 7 парамеров а передаете только 6
(`id`, `date`, `site_id`, `response`, `ping`, `page_data`, `replace`) = 7
(NULL, %s, %s, %s, %s, %s, %s) = 7
---------- Добавлено 26.09.2016 в 09:26 ----------
Проблему создает содержимое веб страницы. Если заменить его на любую строку - все работает.
voodoo911, я уже не помню, но если id - autoincrement, его же можно вообще не передавать? Сам добавится при создании записи (может и путаю, но вреде так делал.
Но видимо это не совсем относиться к сути.
Мне кажется наиболее верной идея очищать предварительно htmlspecialchars($resp_src), а потом у базу передавать уже в правильном формате. Вся проблема в нужной функции
При использовании htmlspecialchars($resp_src) в базу добавляется но поле пустое
voodoo911, а как вы делаете? Запихните результат в промежуточную переменную и посмотрите, что в ней? Типа
и в базу писать $data, если не пустая.
в переменной обработанная строка, а в бд добавляет пустое поле. Чудо чудное, диво дивное
Даже интересно стало.
А нарисуйте весь вашь запрос в варианте с
$res = $wpdb->insert...
и как вы делаете wp_remote_get подробно - какие аргументы
Проблема не в функции, проблема в содержимом удаленного сайта. Скрипт обрабатывает несколько УРЛов. Скрипт прекрасно обрабатывает все УРЛы кроме одного. То-есть что-то в содержимом страницы данного УРЛа нарушает работу. Вот и пытаюсь разобраться как еще можно обработать входящий контент чтобы все работало и для этого сайта.