WP сериализованный запрос в MySQL - PullRequest
0 голосов
/ 12 сентября 2018

У меня простая проблема, но я заблокирован на несколько часов ... У меня есть база данных Wordpress и я хочу обновить таблицу usermeta.

Значение представляет собой сериализованное значение с функцией WP Maybe_serialize (). Мой запрос на обновление не выполняется каждый раз. Я пробовал несколько вещей, чтобы избежать значений, но это не работает.

Вот последний запрос MySQL, который я хочу сгенерировать (сгенерированный PhpMyAdmin):

UPDATE `mytable` SET `meta_value` = 'a:2:{s:64:\"261d0952a424f1e8ef27ee77ef505c445c0aac5166f67e8d675bf06f717972d2\";a:4:{s:10:\"expiration\";i:1526328393;s:2:\"ip\";s:14:\"212.71.232.248\";s:2:\"ua\";s:117:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15\";s:5:\"login\";i:1525118793;}s:64:\"6f04a963506c545e0fb307135bd2eaf5178c8830c55048bb5d80cb7a8d730507\";a:4:{s:10:\"expiration\";i:1525556847;s:2:\"ip\";s:14:\"212.71.232.248\";s:2:\"ua\";s:121:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\";s:5:\"login\";i:1525384047;}}' WHERE `mytable`.`umeta_id` = 48;

Исходное содержание meta_value:

a:2:{s:64:"261d0952a424f1e8ef27ee77ef505c445c0aac5166f67e8d675bf06f717972d2";a:4:{s:10:"expiration";i:1526328393;s:2:"ip";s:14:"212.71.232.248";s:2:"ua";s:117:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15";s:5:"login";i:1525118793;}s:64:"6f04a963506c545e0fb307135bd2eaf5178c8830c55048bb5d80cb7a8d730507";a:4:{s:10:"expiration";i:1525556847;s:2:"ip";s:14:"212.71.232.248";s:2:"ua";s:121:"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36";s:5:"login";i:1525384047;}}

Как мне избежать этого в PHP, чтобы получить окончательный требуемый запрос, работающий с MySQL? Я пытался mysqli_real_escape_string (), но это не то же самое.

РЕДАКТИРОВАТЬ: Вот результат массива после mysqli_real_escape_string ()

$ a:2:{s:64:\"261d0952a424f1e8ef27ee77ef505c445c0aac5166f67e8d675bf06f717972d2\";a:4:{s:10:\"expiration\";i:1577790000;s:2:\"ip\";s:14:\"212.71.232.248\";s:2:\"ua\";s:117:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/11.1 Safari/605.1.15\";s:5:\"login\";i:1525118793;}s:64:\"6f04a963506c545e0fb307135bd2eaf5178c8830c55048bb5d80cb7a8d730507\";a:4:{s:10:\"expiration\";i:1577790000;s:2:\"ip\";s:14:\"212.71.232.248\";s:2:\"ua\";s:121:\"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.139 Safari/537.36\";s:5:\"login\";i:1525384047;}}

Как видите, escape не совпадает с escape-кодом, сгенерированным PhpMYAdmin в первом запросе.

Спасибо !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...