加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php查询错误sqlite附近的语法错误

发布时间:2020-12-13 15:57:57 所属栏目:PHP教程 来源:网络整理
导读:嗨,我是新的sqlite我试图用 PHP执行查询到sqlite数据库,但是 **发生语法错误**的地方附近 这是查询: " INSERT INTO selectedObject ( museum,atwork,beaconCode,qrCode) VALUES ('".$muSEO."','" .$opera."','".$codiceBeacon."','".$codice_qr_random."')
嗨,我是新的sqlite我试图用 PHP执行查询到sqlite数据库,但是
**发生语法错误**的地方附近

这是查询:

"
  INSERT  INTO selectedObject ( museum,atwork,beaconCode,qrCode)
  VALUES ('".$muSEO."','" .$opera."','".$codiceBeacon."','".$codice_qr_random."')
  WHERE NOT EXISTS(
                    SELECT museum,atwork
                    FROM selectedObject
                    WHERE museum = '".$muSEO."' AND atwork = '".$opera."'

                  )";

什么是错的?

解决方法

Sqlite支持复合主键,因此我从 link的手册中显示了这一点:

A CREATE TABLE command specifies the following attributes of the new
table:

Optionally,a PRIMARY KEY for the table. Both single
column and composite (multiple column) primary keys are supported.

根据您的唯一键(主键或其他键,复合键或其他键),您可以使用OR IGNORE的sqlite功能忽略重复冲突,后跟更新语句.

所以它会成为:

INSERT OR IGNORE INTO selectedObject ( museum,'".$codice_qr_random."');

并且(可能)随后进行更新,无论如何.

为什么我说不管?因为INSERT由于唯一键冲突而失败,所以它会无声地失败.但是,该失败可能是由于单列唯一索引或两列的组合,但您需要设置第3列和第4列.因此,更新会将所有内容拖放,并确保行存在.

我将留给您考虑您的用例,以及更新声明(如果需要).

重复冲突意味着您告诉数据库强制实施唯一性,无论是单列还是复合(列组合).

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读