マイ手続きを返したいMySQLはすでに正しく挿入を行います。私のmysqlの手順は、既に挿入し、私は最後に挿入IDに
これは、プロシージャを呼び出す私のPHPコードです:
$sql = 'CALL insert_menu(?,?,?,?,?)';
try {
$query = $bd->prepare($sql);
$query->bindParam(1,$name, PDO::PARAM_STR);
$query->bindParam(2,$catsup, PDO::PARAM_INT);
$query->bindParam(3,$level, PDO::PARAM_INT);
$query->bindParam(4,$link, PDO::PARAM_STR);
$query->bindParam(5,$title, PDO::PARAM_STR);
$query->execute();
} catch (PDOException $e) {
echo $e->getMessage();
}
と、これはあります私の手順:
CREATE DEFINER=`root`@`localhost` PROCEDURE `insert_menu`(
IN p_cat_name VARCHAR(100),
IN p_cat_sup_cod INT,
IN p_cat_level INT,
IN p_link VARCHAR(200),
IN p_title VARCHAR(100)
)
BEGIN
IF ((p_cat_name <> '')&&(p_cat_level <> '')&&(p_link <> '')&&(p_title <> '')) THEN
INSERT INTO access (access_id,menu_descr,sup_cod,level,menu_link,menu_title)
VALUES ('',p_cat_name,p_cat_sup_cod,p_cat_level,p_link,p_title);
END IF;
END;
私は私の手順は、PHPに最後に挿入IDを返すことを希望... 私も準備PDOで結果を取得する方法がわかりませんあなたはPDOを使用しているので
SELECT LAST_INSERT_ID()
LOS_INSERT_ID()はストアされたprocトランザクション内で実行され、yoあなたはストアドプロシージャによって挿入されたレコードのIDを取得していますか? –
2つの間でクエリを実行する可能性があります。あなたが言及したように、あなたは 'beginTransation()'と 'commit()'で2つをラップするか、それらを一緒に実行することができます。 –