免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1596 | 回复: 5
打印 上一主题 下一主题

pear 中db::nextId问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2004-05-28 13:38 |只看该作者 |倒序浏览
pear的高手指点一下,
$tid=$this->;db->;nextId('tid');
echo $tid;//output 7
而事实上我表中tid字段已经到25了//tid auto_increament
$query="INSERT INTO t (tid,f1,f1) VALUES ('$tid','f1','$f2')";
$res=$this->;db->;query($query);
print_r($res);//SQL出错,tid=7已存在
这是怎么回事,急,在线等

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2004-05-30 10:52 |只看该作者

pear 中db::nextId问题

pear::db的nextid工作机制采用了postgresql的sequence方式,即每次的id都由sequence产生,而非大家所熟悉的auto increment方式。由于在其他的数据库内没有sequence这种对象,因此用表来模拟sequence,对照你的代码,我们可以猜想,pear::db隐式的用db->;createSequence()方法建立了一个表tid_seq,你把tid_seq内那个字段的值修改高一些就可以解决你的问题了。

论坛徽章:
0
3 [报告]
发表于 2004-05-31 04:36 |只看该作者

pear 中db::nextId问题

pear mysql驱动的nextid,似乎就是直接返回 mysql_insert_id()

pgsql,标准的方法似乎应该是select currval(TableName__seq) 吧?

不明白

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
4 [报告]
发表于 2004-05-31 10:09 |只看该作者

pear 中db::nextId问题

mysql_insert_id()返回的东西可不是nextid想要的

usage: int mysql_insert_id ( [resource link_identifier ] )
mysql_insert_id() returns the ID generated for an AUTO_INCREMENT column by the previous INSERT query using the given link_identifier. If link_identifier isn't specified, the last opened link is assumed.

论坛徽章:
0
5 [报告]
发表于 2004-05-31 13:46 |只看该作者

pear 中db::nextId问题

phpbb 用的就是mysql_insert_id

论坛徽章:
0
6 [报告]
发表于 2004-06-01 17:53 |只看该作者

pear 中db::nextId问题

谢了,知道怎么回事了,在google上搜到了,讲得没猫详细,HOHO
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP