php thinkphp+pgsql M('table')->add()不能正常的返回新增记录的主键id值。

ThinkPHP框架漏洞总结 Thinkphp简介 ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。 ThinkPHP可以支持windows/U 阅读详情

thinkphp框架对pgsql的支持很差 M('table')->add()不能正常的返回新增记录的主键id值。


所以这里需要对框架做一些修改(thinkphp 3.2.3).


1.修改Model.class.php

添加如下方法:

/**
 * 返回最后插入的ID
 * @access public
 * @return string
 */
public function getLastInsID($sequenceName) {
    return $this->db->last_insert_id($sequenceName);
}

2.修改Pgsql.class.php
	添加如下方法:
/**
 * 用于获取最后插入的ID
 * @access public
 * @return integer
 */
public function last_insert_id($sequenceName) {
    return $this->_linkID->lastInsertId($sequenceName);
}



3.最后在使用的时候需要手动调用这个方法, 而不是M()->add()返回值
如下:
model('model')->add($data);
$user_id = model('model')->getLastInsID('tableName_id_seq');

'tableName_id_seq' 中的id为自增的 当然也可以换成任何需要返回的字段.

以上只是简单实现.

参考:http://www.thinkphp.cn/bug/2794.html

30分钟搭建AI科研写作工作台:基于WorkBuddy的论文全流程加速实践 在人工智能技术日益普及的今天,如何利用智能工具提升专业领域工作效率成为关键课题。其核心原理在于通过模块化设计,将复杂的任务流程拆解为可复用、可编排的标准化技能单元,并结合精准的指令控制,实现从通用对话到深度任务执行的转变。这一技术价值在于显著降低重复性劳动强度,将人的创造力聚焦于核心决策与创新环节。在科研写作、数据分析、代码开发等场景中,这类智能工作台能有效辅助完成文献调研、内容生成、格式校验等繁琐步骤。本文以科研论文写作为具体应用场景,深入探讨如何利用WorkBuddy这一智能工作台,通过配置核心科研技能 阅读详情

相关推荐

Skynet 框架面试题

本文整理了游戏服务端开发面试中 Skynet 框架的高频考点,涵盖底层架构、消息派发、协程调度、网络 I/O、harbor 跨机通信、内存管理、socket 处理、阻塞操作、错误处理等核心内容。全面覆盖 Skynet 框架的原理、使用和实战问题,追求深入准确,拒绝八股文。

小赖的博客 383

think PHP M(),thinkPHP的用法之M

M方法//添加$res = M('comment')->add($data); //成功返回新增ID,失败返回false//删除M('myop_myinvite')->where($map)->delete(); //成功返回删除记录个数,失败返回false//保存M('user')->where("uid={$this->mid}")->data($data)...

weixin_35677144的博客 933

从零部署Stable Diffusion:本地环境搭建完整教程

本文专为“想自己跑Stable Diffusion但完全没经验”的新手设计,覆盖从硬件准备到生成第一张图的完整流程。不涉及复杂算法原理,但会讲清每个操作的“为什么”(比如为什么需要显卡?为什么要装CUDA?),帮你知其然更知其所以然。先检查硬件是否达标(显卡是核心!安装必要软件(操作系统、Python、CUDA)下载Stable Diffusion核心代码和模型解决常见报错,生成第一张图附赠模型库推荐和性能优化技巧显卡是核心:N卡+足够显存(至少6G)是本地部署的基础。CUDA是翻译。

AI算力网络与通信的博客 1294

php的add 返回值,TP3.2 add方法返回值一直为1

今天在敲代码的过程中,偶然发现原本返回值为主键 id 的 add 方法,现在插入数据是成功的,但是现在莫名其妙返回值都变成1了。看了一下我的代码好像没啥问题,那就直接看看源码吧。打开\ThinkPHP\Library\Think\Model.class.php,查找public function add(,找到 add 方法。调试了几波后发现,问题出在了 324 行,当我的主键为复合主键的时候(尽...

weixin_36073654的博客 437

SCAN和JTAG分别是什么?它们之间有什么联系与区别?

SCAN(扫描)技术是集成电路测试领域的一种方法,主要用于边界扫描测试(Boundary Scan)。它是在集成电路设计中引入的一种测试结构,允许测试人员通过在芯片的输入/输出引脚上设置和读取特殊寄存器(边界扫描寄存器,BSR)的内容,来间接测试电路板上的互联和芯片内部功能块。这种方式可以在不接触其他内部节点的情况下测试整个电路板的连接性,极大地提高了测试覆盖率和可诊断性。JTAG(Joint Test Action Group,联合测试行动小组)则是开发并推广边界扫描测试标准的一个组织。

初心不忘产学研的博客 2543

Bode图、ABCD矩阵与EET结合:三步搞定复杂电路传递函数分析

在模拟电路与电源控制设计中,传递函数和频率响应是衡量系统稳定性的核心指标。Bode图以直观的幅频/相频曲线揭示带宽与相位裕度,ABCD二端口矩阵可将级联网络结构化表达,而EET额外元素定理则针对寄生电容、负载效应等局部修正提供显式公式。三者互补,组合成一套从整体拓扑到局部寄生修正的完整分析方法:先用ABCD搭建主体网络,再用EET快速加入额外元件,最后用Bode图验证传递函数和稳定裕度。该方法适用于滤波器设计、电源环路补偿、运放稳定性分析等线性小信号场景,支持Python/SciPy和SPICE交叉验证,显

weixin_32496547的博客 363

Thinkphp M方法出错,D方法却可以

Thinkphp M方法出错,D方法却可以 错误回顾: M('Local')->find();  //报错    //错误信息:Table 'test.local' doesn't exist [ SQL语句 ] : SHOW COLUMNS FROM `local` D('Local')->find();  //正确 ...

DXsunrise的博客 371

STM32驱动数码管:从硬件连接到动态显示实现

本文详细介绍了使用STM32单片机驱动数码管的完整流程,从硬件连接到软件实现。内容涵盖共阳/共阴数码管原理、GPIO配置、段码表生成,并重点解析了多位数码管动态显示的核心技术,包括动态扫描原理、消影处理及实战代码,帮助开发者快速掌握这一嵌入式开发基础技能。

p5l2m9n4o6q的博客 575

ThinkPHP中的增加数据的方法

<br /><br />$M_pimage = D('ProductImage');<br />$dataimage['pi_name'] =$thm_name[$k]?$thm_name[$k]:$_POST['p_name'];<br />$dataimage['p_id'] = $do;<br />$dataimage['pi_sort'] = (int)$thm_sort[$k];<br />$M_pimage->add($dataimage);

静下心来,认真的研究技术。 1007

RV1106的ISP配置实战:MIPI与LVDS接口的硬件连接与设备树优化

本文详细解析了RV1106芯片的ISP配置实战,重点对比了MIPI CSI-2与LVDS两种主流接口的硬件连接方案与数据流差异。通过手把手的设备树代码示例,深入讲解了单路MIPI与双路LVDS摄像头的配置要点、关键属性设置及常见避坑指南,并提供了从驱动加载检查到Media Controller工具使用的系统化调试方法,帮助开发者快速打通图像采集与处理全链路。

terraform7cloud的博客 472

智能手表PCB布局:PPG与IMU传感器噪声隔离与应力解耦设计

在可穿戴设备硬件开发中,PCB布局已超越传统布线范畴,成为决定信号完整性、电磁兼容性与机械可靠性的核心环节。心率传感器(PPG)依赖微伏级光电容积脉搏波信号,极易受数字开关噪声与电源纹波干扰;姿态传感器(IMU)则对PCB弯曲形变引发的机械应力高度敏感。其布局需融合电磁场建模、热-力-电多物理协同及高密度互连约束。关键技术价值体现在噪声路径切断、地弹抑制、应力方向解耦与电源域隔离等工程实践。典型应用场景涵盖智能手表、医疗级贴片设备及微型运动传感终端。本文聚焦PPG与IMU两大模组在STM32L4平台上的实操

weixin_32869687的博客 174

TP3.2 add方法返回值一直为1

今天在敲代码的过程中,偶然发现原本返回值为主键 id 的 add 方法,现在插入数据是成功的,但是现在莫名其妙返回值都变成1了。看了一下我的代码好像没啥问题,那就直接看看源码吧。 打开\ThinkPHP\Library\Think\Model.class.php,查找public function add(,找到 add 方法。 调试了几波后发现,问题出在了 324 行,当我的主键为复合主键的时候(尽管自增主键只有一个),直接就返回给我 insert 的结果了,再去看看 insert .

weixin_43844995的博客 892

EtherCAT主站SOEM -- 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈

以上就是EtherCAT主站SOEM – 19 --Qt-Soem通过CSP模式(周期同步位置模式)控制一个电机转圈圈的内容。有不明白的地方欢迎留言;有建议欢迎留言,我后面编写文档好改进。创作不容,如果文档对您有帮助,记得给个赞。

常驻客栈的博客--嵌入式EtherCAT 1998

pgsql thinkphp5_thinkphp 连接postgresql

PHP连接:php.ini中将extension=php_pgsql.dll前面的分号去掉,然后设置extension_dir指向php文件下的ext文件夹。正常情况下这样php就可以连接postgres了,但是我的仍然出错,提示“Fatal error: Call to undefined function pg_connect()”,查看Apache的日志,“PHP Startup: Unab...

weixin_39788131的博客 411

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

php中的getfield,ThinkPHP之getField详解_PHP教程

getField方法是ThinkPHP中用来获取字段值的方法,区别于select和find方法,通常仅用于获取个别字段的值。但是事实上并没有那么简单,现将该方法的用法总结如下:1.获取某个字段值这个是getField方法最基本的用法,用于获取符合条件的某个字段值。$User = M("User"); // 实例化User对象// 获取ID为3的用户的昵称$nickname = $User->...

weixin_42418754的博客 318

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

laravel yii thinkphp 框架对比_thinkPHP--项目

TP简介-我的认识0.1什么是框架框架就是一些代码类、方法(函数)、变量、常量的集合,这些代码是功能结构性的代码(并非业务代码)。业务代码其实就是具体的一些模块的增删改查逻辑代码。使用框架开发项目,有便于代码重用、开发效率高、代码规范好、便于功能扩展等优点。在PHP中主流框架主要有:1、Zend Framework (PHP官方框架);2、YII (易框架);3、Laravel ;4、Think...

weixin_39834745的博客 458

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

thinkphp封装mysql类_ThinkPHP数据库驱动 基于ThinkPHP5.1的ORM独立封装

基于PHP5.6+ 的ORM实现,主要特性:- 基于ThinkPHP5.1的ORM独立封装- 支持Mysql、Pgsql、Sqlite、SqlServer、Oracle和Mongodb- 支持Db类和查询构造器- 支持事务- 支持模型和关联适用于不使用ThinkPHP框架的开发者。Db类用法:use think\Db;// 数据库配置信息设置(全局有效)Db::setConfig(['数据库配置参...

weixin_32389427的博客 416

【课程设计】(附源码)PHP大学生兼职网站 毕业设计94277

大学生兼职网站主要功能模块包括用户管理、兼职信息管理、职位类别、申请兼职、撤销申请等,采取面对对象的开发模式进行软件的开发和硬体的架设,能很好的满足实际使用的需求,完善了对应的软体架设以及程序编码的工作,本文采用PHP语言、Thinkphp框架、Ajax技术进行业务系统的编码及其开发,完成了系统的主要模块的页面设计和功能实现....

Biye_Design的博客 1916

【课程设计】PHP动物收容所管理系统-计算机毕业设计源码94164

(1)个人信息管理:用户可以通过注册功能创建个人账号,并通过登录功能进行身份验证。可填写领养申请表格,提供个人信息和领养流浪动物的详细要求。用户可以查看自己的领养申请状态,包括审核中、通过、拒绝等。 (2)动物信息浏览:用户可以浏览收容所中的流浪动物信息,包括动物的种类、年龄、性别、描述等详细信息。 (3)动物领养申请:用户可以提交申请领养特定的流浪动物,填写个人信息以及申请的理由。管理员收到申请后进行审核和处理。 (4)领养申请状态跟踪:用户可以查看自己的领养申请状态,包括待审核、审核中、已通过、已拒绝等

高级程序源的博客 3467

【课程设计】PHP学生考勤管理系统毕业设计-附源码080900

本文以php为开发技术,实现了一个学生考勤管理系统。学生考勤管理系统的主要使用者分为管理员、教师、学生;管理员功能分为:首页、用户管理(管理员、学生、教师)更多管理(课程管理、教师点名、通知公告、学生请假),基本上实现了整个学生考勤管理的过程。具体在系统设计上,采用了B/S的结构,同时,也使用PHP技术在动态页面上进行了设计,后台上采用Mysql数据库,是一个非常优秀的学生考勤管理系统。 关键词 :学生考勤管理系统;PHP技术;Mysql数据库;B/S结构...

Biye_Design的博客 3683

Thinkphp3全漏洞分析

无

灰太的表格的博客 8235

thinkphp 连接postgresql

PHP连接: php.ini中将extension=php_pgsql.dll前面的分号去掉extension=php_pdo_pgsql.dll前面的分号去掉,然后设置extension_dir指向php文件下的ext文件夹。 正常情况下这样php就可以连接postgres了,但是我的仍然出错,提示“Fatal error: Call to undefined function pg_con...

weixin_30376163的博客 768

ThinkPHP框架之数据库操作

一、前言 ThinkPHP内置了抽象数据库访问层,把不同的数据库操作封装起来,我们只需要使用公共的Db类进行操作,而无需针对不同的数据库写不同的代码和底层实现,Db类会自动调用相应的数据库驱动来处理。目前的数据库包括Mysql、SqlServer、PgSQL、Sqlite、Oracle、Ibase、Mongo,也包括对PDO的支持。 二、连接数据库 1.全局配置 常用的配置方式是在Applicat...

weixin_42146366的博客 511

?php|class action extends mysql{_ThinkPHP无限级分类实现方法

ThinkPHP无限级分类实现方法发布于 2014-08-24 00:12:26 | 2368 次阅读 | 评论: 0 | 来源: 网友投递ThinkPHP开源PHP框架ThinkPHP是一个开源的PHP框架,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的。ThinkPHP可以支持windows/Unix/Liunx等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL...

weixin_33844346的博客 195

php多表数据排除,thinkphp中多表查询中防止数据重复的sql语句(必看)

thinkphp中多表查询中防止数据重复的sql语句(必看)这里有新鲜出炉的精品教程,程序狗速度看过来!ThinkPHP 开源 PHP 框架ThinkPHP 是一个开源的 PHP 框架,是为了简化企业级应用开发和敏捷 web 应用开发而诞生的。ThinkPHP 可以支持 windows/Unix/Liunx 等服务器环境,正式版需要 PHP5.0 以上版本支持,支持 MySql、PgSQL、Sql...

weixin_36357218的博客 425

【课程设计】PHP传统民俗知识分享平台-计算机毕业设计源码29492

主页: 轮播图、类别展示(生产劳动民俗、日常生活民俗、社会组织民俗、岁时节日民俗、人生礼仪、游艺民俗、民间观念、民间文学)、展示帖子(评论帖子、回复评论、点赞帖子、收藏帖子)、搜索功能、活动组织(发布社区活动信息,并提供在线报名、签到等功能) 个人中心:个人设置、发布帖子管理(发布、修改、删除)、我的收藏 后台管理(管理员):添加、编辑和管理帖子

Biye_Design的博客 1218
上一篇: php thinkphp + pgsql table_msg()函数缺失解决方案
下一篇: php osx php pdo连接mssql方法
希望丶
博客等级 码龄12年 2粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值