Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >获取最后一个插入id并将其插入到db php MVC中。

获取最后一个插入id并将其插入到db php MVC中。
EN

Stack Overflow用户
提问于 2017-12-06 17:02:11
回答 1查看 512关注 0票数 0

我正在尝试获取数据库中最后插入的id,并使用它插入另一条记录,在本例中,是将图像与特定记录相关联。注意:我使用的是MVC,这在模型中。这两个操作应该紧接着发生,即:用户看不到有两个不同的插入同时发生。

这是初始插入:

代码语言:javascript
运行
AI代码解释
复制
public function addAccom($data)
    {
        $this->db->query("INSERT INTO `accommodation` (`name`, `description`, `category`, `slug`) VALUES (:name, :description, :category, :slug)");
        $this->db->bind(":name", $data['name']);
        $this->db->bind(":description", $data['description']);
        $this->db->bind(":category", $data['category']);
        $this->db->bind(":slug", $data['slug']);
        if($this->db->execute()){
        $id = $this->db->lastInsertId();
            return true;
        } else {
            return false;
        }
    }

我不知道上面这一行是否正确:

代码语言:javascript
运行
AI代码解释
复制
$id = $this->db->lastInsertId();

在此插入之后,我需要使用该id将更多记录插入到另一个表中。

我应该尝试在与此相同的查询中运行另一个数据库查询,还是应该创建另一个查询?

这是我的第二个问题:

代码语言:javascript
运行
AI代码解释
复制
public function addAccomPic($data)
{
    $this->db->query("INSERT INTO `accom_pics` (`accom_id`, `pic_name`) VALUES (:accom_id, :pic_name)");
    $this->db->bind(":accom_id", $data['accom_id']);
    $this->db->bind(":pic_name", $data['pic_name']);
    if($this->db->execute()) {
        return true;
    } else {
        return false;
    }
}

数据库:

代码语言:javascript
运行
AI代码解释
复制
private $host = DB_HOST;
    private $user = DB_USER;
    private $pass = DB_PASS;
    private $dbname = DB_NAME;

    private $dbh; // Is this the same as $link ?
    private $stmt;
    private $error;

    public function __construct() {
        $dsn = "mysql:host=$this->host;dbname=$this->dbname";
        $options = array(
            PDO::ATTR_PERSISTENT => true,
            PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
        );

        try {
            $this->dbh = new PDO($dsn, $this->user, $this->pass, $options);

        } catch(PDOexception $e) {
            $this->error = $e->getMessage();
            echo $this->error;
        }
    }
EN

回答 1

Stack Overflow用户

发布于 2017-12-06 17:06:41

我首先看到的是,它的$id是一个局部变量。尝试将其设置为全局:

代码语言:javascript
运行
AI代码解释
复制
public $id = null;

public function addAccom($data)
{
    $this->id = $this->db->lastInsertId();
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47679691

复制
相关文章
C#-VsCode如何运行C#代码
VsCode作为一款优秀的代码编辑器,有调试代码的功能,我们必须要来玩一玩这个,这里就以运行c#代码为例子,简单的说一下吧。
kdyonly
2023/03/03
2.2K0
html语言代码超链接,html 超链接 word html超链接代码
“打开/保存”是因浏览者的浏览器而异的,假如浏览者的电脑没有装word软件,那么,无论什么情况,都是打不开的,你只能选择保存(选择打开的话,电脑会让你选择使用什么软件来打开);如果浏览者的电脑装了word软件,那么如果电脑的安全级别高一些,一样会提示“打开/保存”,为的是防止直接打开病毒文件。
全栈程序员站长
2022/09/14
21.2K0
如何让软件以 System 权限运行
本文只是告诉大家调试 System 运行软件时可以如何快速让一个应用以 System 权限运行。使用 PsExec 可以让软件以 System 账户运行
林德熙
2020/02/18
2.7K0
html中超链接使用_HTML超链接代码
html超链接的写法是e69da5e6ba903231313335323631343130323136353331333431353431使用a标签,如:百度一下,你就知道。
全栈程序员站长
2022/09/18
1.3K0
Outlook如何备份邮件
点击outlook菜单栏上的“文件”选项,可以看到主界面右侧有一个“添加账户”的选项。
周小董
2019/03/25
4.1K0
Outlook如何备份邮件
C#字符串截取
常用字符串截取 string str="123abc456"; int i=3; 1 取字符串的前i个字符 str=str.Substring(0,i); // or  str=str.Remove(i,str.Length-i);  2 去掉字符串的前i个字符: str=str.Remove(0,i);  // or str=str.Substring(i);  3 从右边开始取i个字符: str=str.Substring(str.Length-i); // or str=str.Remove(0,st
yaphetsfang
2020/07/30
2.3K0
按钮式超链接代码
其中, 鼠标经过超链接的时候 设置的样式 。padding属性意在通过内边距微调来改变文字位置
全栈程序员站长
2022/09/18
1.4K0
按钮式超链接代码
HTML超链接使用代码
HTML 超链接(链接) HTML使用标签来设置超文本链接。在标签 中使用了href属性来描述链接的地址。 超链接可以是一个字,一个词,或者一组词,也可以是一幅图像,您可以点击这些内容来跳转到新的文档或者当前文档中的某个部分。 当您把鼠标指针移动到网页中的某个链接上时,箭头会变为一只小手。
全栈程序员站长
2022/09/14
2.4K0
如何运行ruby代码
第一种,ruby -e 在命令行中运行下面命令,-e的意思是,把后面的字符串当作脚本执行 ruby -e "print 'hello'" 使用irb交互控制台 在命令行输入irb hello worldxingoo@xingoo-Lenovo:~/workspace/RubyTest$ irb irb(main):001:0> p "hello" "hello" => "hello" irb(main):002:0> p "中文hello" "中文hello" => "中文hello" irb(main):
用户1154259
2018/01/17
1.4K0
如何运行PHP代码_运行php网站
相信不少初学者会遇到不知道如何运行php这个尴尬的问题,小白博主就来一次比较详细的介绍
全栈程序员站长
2022/11/11
10.3K0
如何运行PHP代码_运行php网站
pycharm如何执行代码_pycharm如何运行代码
首先在pycharm 中的python 文件,比如:test.py,右键点击 show in explore,会弹出test.py的所在的文件夹,如图所示:
全栈程序员站长
2022/09/27
1.2K0
pycharm如何执行代码_pycharm如何运行代码
【改进和增强Microsoft Office应用程序】ExtendOffice软件产品介绍
ExtendOffice Technology Inc.成立于2008年,是一家提供专业Microsoft Office加载项的主要公司。早在2004年,该公司的创始人就启动了Addintools.com来销售Microsoft Office的加载项。
51Component
2022/11/09
11.4K0
【改进和增强Microsoft Office应用程序】ExtendOffice软件产品介绍
C# 字节数组截取
C# 字节数组截取 如: byte[] bt = new byte[] { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; 方法一 截取位数规则 1)截取2位长度的字节数组 用BitConverter.ToInt16 例如,从第2位开始截取2个字节则 BitConverter.ToInt16(bt,2);
全栈程序员站长
2022/08/12
3.6K0
图片中加入超链接html代码,html网页超链接代码 怎样用HTML代码在图片插入超链接…
HTML使用定义锚创造链接,可用于文本,图片,HTML元素…… 一,将文本作为超链接 文本 二,将图像作为超链接 三,将书签作为超链接 (在网页上显示的)书签文本 ① 在同文档中创建指向该锚的链接。 文本 ② 在其他页面创建指向该锚的链接。
全栈程序员站长
2022/09/18
5.3K0
图片中加入超链接html代码,html网页超链接代码 怎样用HTML代码在图片插入超链接…
(3)apache的安装,配置Apache以运行PHP代码
配置apache.以运行PHP程序 将刚才的网页1base.php放到Apache的htdocs文件中,并通过浏览器“浏览”
孙寅
2020/06/02
2.1K0
(3)apache的安装,配置Apache以运行PHP代码
如何在 Linux 中以脚本模式运行 Top
在 Centos8 中,我们执行本文中的命令。下面命令按照 CPU 使用率对数据进行排序,并打印命令中指定的前 20 行。
用户9236362
2021/11/30
2.5K0
删除或关闭Word中的超链接
最近使用的word老是会把一些文字内容或者标题转换成乱七八糟的格式,看的莫名其妙的,找了好久也不知道什么问题,后来一查才知道是因为这些文字包含超链接,word自动转换了。。。你说是不是莫名其妙。
marsggbo
2019/05/26
2.6K0
SplitContainer(拆分条控件)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/161095.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/09
2.3K0
C#截取指定字符串函数
本文转载:http://www.cnblogs.com/liufei88866/archive/2012/05/12/2497395.html
跟着阿笨一起玩NET
2018/09/19
1.2K0
c语言数组截取,C# 字符串按数组截取方法(C/S)
private void button1_Click(object sender, EventArgs e) {
全栈程序员站长
2022/06/30
2.2K0

相似问题

如何在单击超链接时运行php代码

10

C#陷阱单击带有阅读窗格的Outlook (超链接)

10

Outlook邮件-禁止在超链接上单击鼠标左键或阻止Outlook跟随单击的超链接

11

如何使用Outlook AddIn插入可单击的超链接?

17

Visual 2015 Outlook AddIn + Office 365单击以运行

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文