i have a 'insert into' and 'select' querys together in one query.
$_SESSION['LoginUID']=1;
$Mesaj='ffdd';
$Ek=12;
$cid=112;
$Kaydet=$db->query("
Insert Into Reply (Kimden,Mesaj,Ek,cid)
Values (".$_SESSION['LoginUID'].",'$Mesaj',$Ek,$cid);
select r_id,KayitZaman from Reply
where r_id=LAST_INSERT_ID();")
->fetch(PDO::FETCH_ASSOC);
But i cant select last inserted row. It must return like this
m_id KayitZaman
16 1413130807000
How can i do that in one query? Or other way.
You cannot run two queries at the same time, only one at the time
After the insert, run the select:
$stmt = $db->query('select r_id,KayitZaman from Reply where r_id=LAST_INSERT_ID()');
or you can use the built in function to pass the last inserted Id
$stmt = $db->prepare('select r_id,KayitZaman from Reply where r_id= ?');
$stmt->execute(array($db->lastInsertId()));
If you want to do the whole thing at once then create a stored procedure.
EDIT:
DELIMITER //
CREATE PROCEDURE sp_insert_get_reply(IN `p_Kimden`,
IN `p_Mesaj`,
IN `p_Ek`,
IN `p_cid`)
BEGIN
INSERT INTO `Reply` (`Kimden`, `Mesaj`, `Ek`, `cid`)
VALUES (p_Kimden, p_Mesaj, p_Ek, p_cid);
SELECT `r_id`, `KayitZaman`
FROM Reply WHERE r_id=LAST_INSERT_ID()
END //
DELIMITER ;
then call the function from PDO:
$stmt = $db->prepare('CALL sp_insert_get_reply(?, ?, ?, ?)');
$stmt->execute(($_SESSION['LoginUID'], $Mesaj, $Ek, $cid));