ADODB使用一问!

stanely 2004-05-06 01:00:39
有个自动编号的字段,想在插入新数据的时候同时得到这个自动编号的字段生成的编号,并且组成另一个sql语句进行其他操作,怎么做?

如果使用操作系统的com对象的话,可以调用recordset.update然后再recordset.fields[xxx]就可以。

但是用adodb这套"模拟类"怎么实现这个功能?
...全文
61 11 打赏 收藏 转发到动态 举报
写回复
用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();

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧