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
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

表情包
插入表情
评论将由博主筛选后显示,对所有人可见 | 还能输入1000个字符
©️2021 CSDN 皮肤主题: 深蓝海洋 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值