Данные в POST запросе приходят в виде ассоциативного массива:
array(2) {
[0]=>
array(1) {
["plgn_post_url"]=>
string(110) "https://scontent.cdninstagram.com/t51.2885-15/s320x320/e35/17934632_1891986064378361_8110928872435875840_n
.jpg"
}
[1]=>
array(1) {
["plgn_post_url"]=>
string(109) "https://scontent.cdninstagram.com/t51.2885-15/s320x320/e35/18382713_118552792048179_6482017612954861568_n
.jpg"
}
}
Необходимо при помощи $wpdb->delete
удалить строки из таблицы со значениями колонки, равными значениям в массиве. Колонка, по которой идет отбор в таблице, имеет такое же название как и элементы в массиве - plgn_post_url
.
Сейчас при запросе
$wpdb->delete($table_name, $data)
выдает:
mysqli_real_escape_string() expects parameter 2 to be string, array given in C:\xampp
\apps\wordpress\htdocs\wp-includes\wp-db.php on line 1171
"\"Error Unknown column '0' in 'where clause'\""
Функция wpdb->delete не поддерживает ничего, кроме одного значения в WHERE. Надо использовать
$wpdb->query( "DELETE FROM table_name WHERE plgn_post_url IN($urls)" );
$urls должна быть строкой, в которую вы соберёте все значения plgn_post_url через запятую.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Хочу чтобы переменная возвращала количество вызовов функции