php一更新数据主键变为0,php ADO access数据库 update语句无法引用主键的值

注意 No 为access表里的主键

我想将No=290的记录里的 ID改为11,下面二句执行后无变化

$query = "update sensors set ID=11 where No=290";

$result =$conn->Execute($query);

-----------------------------------------------

但下面二句执行后是有效果的,能将type=49的记录ID改为11

$query = "update sensors set ID=11 where type=49";

$result =$conn->Execute($query);

------------------------------------------------

想知道为什么引用主键的值就不行呢?

回复讨论(解决方案)

这样试试:

update sensors set ID=11 where No=290 and type=49

是不是主键重复了~

这样试试:

update sensors set ID=11 where No=290 and type=49

是不是主键重复了~

主键系统自动增加的,是惟一的,不可能有重复值

我下面这句话是OK的,(XXXXXX是具体的需要更新的字段)

update sensors set XXXXXXXX where ID=15 and type=48 and prop=0

这样试试:

update sensors set ID=11 where No=290 and type=49

是不是主键重复了~

主键系统自动增加的,是惟一的,不可能有重复值

我下面这句话是OK的,(XXXXXX是具体的需要更新的字段)

update sensors set XXXXXXXX where ID=15 and type=48 and prop=0

select * from sensors where No=290 看看

帮你转到PHP区了,是不是type字段是字符类型的,换成这样试试update sensors set ID=11 where type='49'

no 是 access 的保留字(见 http://office.microsoft.com/zh-cn/access-help/HA010030643.aspx)

在选择标识符名称时应避免使用的保留字

如果已经用了,并且不方便修改的话,应进行转义:用中括号括起

$query = "update sensors set ID=11 where [No]=290";

no 是 access 的保留字(见 http://office.microsoft.com/zh-cn/access-help/HA010030643.aspx)

在选择标识符名称时应避免使用的保留字

如果已经用了,并且不方便修改的话,应进行转义:用中括号括起

$query = "update sensors set ID=11 where [No]=290";

测试了一下,确实如楼上所说No是保留字,将它用方括号包起来就能得到正确的结果了,谢谢,结贴给分!~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值