- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Что делать, если ваша email-рассылка попала в спам
10 распространенных причин и решений
Екатерина Ткаченко
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Привет всем знатокам 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 подробно - какие аргументы
Проблема не в функции, проблема в содержимом удаленного сайта. Скрипт обрабатывает несколько УРЛов. Скрипт прекрасно обрабатывает все УРЛы кроме одного. То-есть что-то в содержимом страницы данного УРЛа нарушает работу. Вот и пытаюсь разобраться как еще можно обработать входящий контент чтобы все работало и для этого сайта.