【问题标题】:PDO - Retrieving a variable value from a transaction?PDO - 从事务中检索变量值?
【发布时间】:2011-11-18 04:18:00
【问题描述】:

给定以下代码块:

$q = "
BEGIN;
DECLARE User_ID int
INSERT INTO user (field1,field2) values (value1,value2);
set User_ID = select LAST_INSERT_ID();
INSERT INTO table2 (field1,field2) values (value1,LAST_INSERT_ID());
select User_ID
COMMIT;";

$sth = PDO::prepare($q);
$sth->execute();

我该怎么做才能检索值 "User_ID" ? fetch 和 fetchAll 只是返回空数组,过程中没有抛出任何错误

编辑 1 抱歉,应该更清楚...在返回结果之前还有第二个 INSERT 语句。

【问题讨论】:

    标签: php mysql database transactions pdo


    【解决方案1】:

    $q = " 开始; DECLARE User_ID int INSERT INTO 用户 (field1,field2) 值 (value1,value2); 设置 User_ID = 选择 LAST_INSERT_ID(); INSERT INTO table2 (field1,field2) 值 (value1,LAST_INSERT_ID() - 1); 选择用户 ID 提交;";

    $sth = PDO::prepare($q); $sth->执行();

    【讨论】:

    • 提供你的引擎支持它
    • 对不起,应该更清楚...在返回 user_id 之前有第二个 INSERT 子句...因此设置变量值而不是仅仅使用 PDO 的版本来获取它。
    • 好的,然后你需要使用事务
    • 嗯...是的,我仍在努力寻找交易解决方案。暂时我可能会分两个阶段完成,我想我只需要阅读 PDO 事务,看看我是否在那里找到我的答案。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-24
    • 2010-10-27
    • 1970-01-01
    相关资源
    最近更新 更多