У меня странное поведение при использовании PHP PDO для вставки из запроса SELECT. Тестируя запрос непосредственно в MySQL, он работает хорошо, я вставляю строку:
INSERT INTO sessionid (enc_id, enc_pass, enc_date)
SELECT AES_ENCRYPT(username, 'aeskey'), AES_ENCRYPT(pwd, 'aeskey'),
DATE_ADD(NOW(), INTERVAL 15 SECOND) FROM users WHERE username = 'a_user_name';
Но используя PDO, я вставляю по одной строке на пользователя сразу (279 строк) .... Вот PHP:
$sql_enc = '
INSERT INTO sessionid (enc_id, enc_pass, enc_date)
(SELECT AES_ENCRYPT(username, :aeskey), AES_ENCRYPT(pwd, :aeskey), DATE_ADD(NOW(), INTERVAL 15 SECOND) FROM users WHERE username = :username)
';
$res_enc = $pdo->prepare($sql_enc);
$res_enc->bindParam(':aeskey', $aeskey);
$res_enc->bindParam(':username', $username);
$res_enc->bindParam(':pwd', $username);
$res_enc->execute();
$res_enc = null;
Чего мне не хватает? Я почти уверен, что это ничто, но не могу заставить его вставить этот единственный ряд.
Спасибо.
Фабьен.