Отправить запрос в mysql AES_ENCRYPT+To_base64

Статус
В этой теме нельзя размещать новые ответы.

silmarion

Полезный
Регистрация
21 Июн 2012
Сообщения
194
Реакции
19
Всем привет, в общем уже полночи мучаю

Надо в бд вставить такую вещь.
insert into base (1,1,1,1,1,1) values ('1','1','1','1','1','AES_ENCRYPT(TO_BASE64('".$full."'),'".$key."'))',),'1','1','1');
Примерно так
Загнать длинное выражение в AES_ENCRYPT а затем в base64
Явно что-то с пунктуацией, уже извращался как мог
 
Попробуй так:
echo "insert into base (1,1,1,1,1,1) values (1,1,1,1,1,AES_ENCRYPT(TO_BASE64('".$full."'),'".$key."'));";

Только в твоем примере сначала баш идет, а потом аес.
 
Помимо ненужных одинарных кавычек, обрамляющих AES_ENCRYPT, проблема может заключаться еще и в используемой версии MySQL, в котором TO_BASE64 был введен лишь начиная с версий 5.6.х
И, как верно подмечено, следуя логике, необходимо поменять местами TO_BASE64 и AES_ENCRYPT
 
Перенес сайт на vds, запрос перестал работать
$sql_pp = mysqli_query($db_connect, "SELECT AES_DECRYPT(FROM_BASE64(`item`),'".$key."') as `item`

На обычном бесплатном хостинге, и на локалке все работает нормально
 
Объединил с предыдущей темой
Если запрос не работает, то он ошибку должен возвращать. Прочитав текст этой ошибки вы скорее всего поймёте в чем проблема ;)
 
Последнее редактирование:
Да, ответ подошел, но как и писал выше
На обычном бесплатном хостинге, и на локалке все работает нормально
а на VDS нет Centos 6.4 64 bit
Думаю что проблема в настройках сервера, что нужно включить чтобы эта функция работала?
 
PHP:
SELECT version();
#или
SELECT @@version;

что возвращает?
 
5.5.43

на денвере (где работает) версия 5.5.25

Странно, обновил сейчас до 5.6.14 и заработало, а почему на денвере на 5.5 работает?
Не совсем правда заработало, но хотя бы вывело текст
Как вывести номер ошибки Mysqli?
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху