社区
基础编程
帖子详情
ADODB使用一问!
stanely
2004-05-06 01:00:39
有个自动编号的字段,想在插入新数据的时候同时得到这个自动编号的字段生成的编号,并且组成另一个sql语句进行其他操作,怎么做?
如果使用操作系统的com对象的话,可以调用recordset.update然后再recordset.fields[xxx]就可以。
但是用adodb这套"模拟类"怎么实现这个功能?
...全文
95
11
打赏
收藏
ADODB使用一问!
有个自动编号的字段,想在插入新数据的时候同时得到这个自动编号的字段生成的编号,并且组成另一个sql语句进行其他操作,怎么做? 如果使用操作系统的com对象的话,可以调用recordset.update然后再recordset.fields[xxx]就可以。 但是用adodb这套"模拟类"怎么实现这个功能?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
-神仙-
2004-05-06
打赏
举报
回复
为什么要用adodb?
把php的函数加一个壳不就好了
function db_connect($host,$usnm,$pswd){
return mysql_connect($host,$usnm,$pswd);
}
function db_select_db($db){
return mysql_select_db($db);
}
以后只要改一个文件就可以了
stanely
2004-05-06
打赏
举报
回复
还是没明白,
如果我有个表叫languages
2个字段:
id=>自动编号
txt=>文本
echo $conn->Genid('languages'); 结果是空
echo $conn->Genid('id'); 结果是从1开始的递增的数字,而产生的数字并不是唯一的,id字段里面已经有6了,他还产生6
echo $conn->Genid('txt');
结果跟echo $conn->Genid('id'); 一样。
echo $conn->Genid('iddddddd');//一个不存在的字段
结果跟echo $conn->Genid('id'); 一样。
为啥?
chinaworker
2004-05-06
打赏
举报
回复
GenID($seqName = 'ADOdbseq',$startID=1)
产生一个顺序号码(在mssql是一个整数值)。对 interbase,mysql,postgresql,oci8,oci8po,ODBC核心类驱动程序(如 access,vfp,db2等等) 都支持。使用 $seqName做为顺序名。如果数据库没有值,那么GenID()将会自动为你产生一个序号(产生使用者 id 时允许如此),换句话说,你必需自行建立序号。
如果你的数据库驱动程序要仿真序号,资料表的名称就是序号名(sequence name),而这个资料表必需有一个字段"id",而其资料型别为整数,或你需要更大些的 numeric(16)。
对于没有支持序号原生功能的ODBC及数据库(如 mssql,mysql),我们对每一个序号建立一个资料表。如果序号没有被预先定义,那启如的号码值就设定成 $startID。
注意,mssql驱动程序的 GenID()会产生一个16位的GUID。自1.90版起,我们将回传整数。
stanely
2004-05-06
打赏
举报
回复
我看了一下帮助,genid()可用。
但是不明白事例代码的意思:
$id = $connection->GenID('sequence_name');
$connection->Execute("insert into table (id, firstname, lastname) values ($id, $firstname, $lastname)");
其中'sequence_name'是什么?
stanely
2004-05-06
打赏
举报
回复
GenID和Insert_ID不适用于所有数据库阿。。。
有没有portable的方法?
feixuehenshui
2004-05-06
打赏
举报
回复
$userid=$db->Insert_ID();
hahawen
2004-05-06
打赏
举报
回复
你把GenID($seqName = 'ADOdbseq',$startID=1)中的$startID设置为你现在数据库中的id字段的最大值就可以了。
否则像你这种重复,使根本没法让数据库帮你搞得。或者你自己写个genid的函数。
stanely
2004-05-06
打赏
举报
回复
有没有别的方法?产生GUID的办法好不好?
hahawen
2004-05-06
打赏
举报
回复
$cnn->GenID("user");
GenID的具体的用法,看adodb的手册
stanely
2004-05-06
打赏
举报
回复
不行啊,这个不是所有的数据库都支持,
使用adodb就是为了以后移植数据库的时候方便。
有没有通用的做法?
sto
2004-05-06
打赏
举报
回复
$db->insert_id();
ADO
DB
入门(一)
1. 前言
ADO
DB
是 Active Data Objects Data Base 的简称,它是一种 PHP 存取数据库的函式组件。现在 SFS3 系统 (校园自由软件交流网学务系统) 计划的主持人陈莹光老师,决定采用此一组件,为了让更多有心参与该项目的伙伴们能够顺利加入发展的行列,小弟认为有必要把
ADO
DB
的中文入门介绍写出来,以方便伙伴们参考备查。虽然 PHP 是建构 Web 系
ADO
DB
详解
17.4
ADO
DB
PHP在数据库的支持上是很令人称道的,几乎所有的知名数据库系统都有对应的函数库支持,而且支持得很完整。但遗憾的是,每一群数据库支持函数无论在名称或参数结构上,都有很大的差异,这使得PHP的系统开发者在面临更换数据库时,总会觉得痛苦万分。难道这个问题就没有解决方法吗?当然有,答案就是将要介绍的
ADO
DB
这个PHP类库。
ADO
DB
提供了完整的方法和属性,可以用来控制数
ADO
DB
,
ADO
DB
_lite
ADO
DB
是一套功能强大的数据库抽象类,可以支持很多种数据库,功能很多。但由于它太过于庞大,网上很多人感觉它比较慢,而这时就产生了简化版的
ADO
DB
,也就是
ADO
DB
_lite ,但
ADO
DB
_lite 与
ADO
DB
事实上没有任何关系,它不是把
ADO
DB
删除一些代码而直接得到的,它们是独立的两个工程,只是
ADO
DB
_lite
使用
了一个简化的
ADO
DB
接口。网上的测试人员认为,
ADO
DB
_lite
ADO
DB
使用
说明
ADO
DB
是Active Data Object DataBase的缩写。
ADO
DB
目前支持MySQL、PostgreSQL、Oracle、Interbase、Microsoft SQL Server、Access、FoxPro、Sybase、O
DB
C及
ADO
。MySQL的例子PHP中最通用的数据库是MySQL,所以我想你会喜欢下面的程序代码,它连结到 localhost 的 MySQL
ADO
DB
.Connection、
ADO
DB
.RecordSet
1.数据库连接对象(
ADO
DB
. Connection) 该对象用于与O
DB
C数据库建立连接,所有对数据库的操作均通过该连接进行。 数据库连接对象
ADO
DB
. Connection的作用象Delphi中的TDatabase对象。 建立一个连接对象的方法为(AConnection为Variant类型变量): AConnection:=CreateOleObject(’A DO
DB
.Con
基础编程
21,889
社区成员
140,333
社区内容
发帖
与我相关
我的任务
基础编程
从PHP安装配置,PHP入门,PHP基础到PHP应用
复制链接
扫一扫
分享
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章