我对使用PHP PDO进行SELECT查询的INSERT有奇怪的行为。测试查询直接在MySQL它工作得很好,我让我的插入行:使用PDO从SELECT进行MySQL INSERT
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;
我错过了什么?我几乎可以确定它只是无法使其插入单行。
谢谢。
fabien。
等等......我发现了我甚至在这里粘贴的愚蠢错误:bindParam。 $ username分配给:username和:pwd。对于这个问题抱歉,并且感谢Pekka的回复。 – feub
啊,够公平 - 我误解了查询。 –