Solar Model数据库操作之修改数据

Solar Model数据库操作之修改数据

Solar_Sql_Model::update()修改数据

将articles表中的指定id的title修改为'update_title', actionUpdate():

该方法在Solar中的定义:int update( array $data, string|array $where) array $data是更新后的数据,字段名为键,对应为值。 string|array $where 条件语句,上述方法的where语句可以是'id = '.$id

注意

  • 该方法返回的是更新记录的条数,更新不成功返回0。
  • 该方法可以通过条件同时更新多条记录。

Solar_Sql_Model_Record::save()修改数据

为了简便,这里就不通过form获取数据来修改了,actionUpdate($id):

要得到Solar_Sql_Model_Record类的对象必须调用Solar_Sql_Model::fetch()或其它方法,再调用该类的save()保存修改后的记录。 这种形式的修改数据要先查询获取数据,所以相对慢些。

注意

  • 这种方法还有一大弊端就是只能一次更新一条记录。
这是我的建表语句,我想要更新某一天记录的数据,为什么这个sql操作会报错,说sqlite3数据库只支持xxx的数据类型? CREATE TABLE IF NOT EXISTS device_info ( id INTEGER PRIMARY KEY, devId TEXT UNIQUE NOT NULL, deviceName TEXT, deviceModel TEXT, deviceType TEXT CHECK(deviceType IN ('IPC', 'NVR', 'SOLAR', 'OTHER')), firmwareVersion TEXT, hardwareVersion TEXT, macAddress TEXT UNIQUE NOT NULL, ipAddress INTEGER, ipAddressString TEXT, onlineStatus TEXT CHECK(onlineStatus IN ('ONLINE', 'OFFLINE', 'INITIALIZED', 'UN_INITIALIZED', 'NOT_CER')), vmsId TEXT, siteId INTEGER, parentId INTEGER REFERENCES device_info(id), username TEXT, password TEXT, qrCode TEXT, channelName TEXT, vender INTEGER, supportFirmwareVersion TEXT, upgradeStatus TEXT CHECK(upgradeStatus IN ('NONE', 'UPGRADING', 'SUCCESS', 'FAILED')), protocol TEXT, channel INTEGER, smartDetectionCapability TEXT, channelNum INTEGER, deviceUpgrading INTEGER DEFAULT 0, --布尔类型改为INTEGER httpsPort INTEGER, addType TEXT, createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updatedAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP, removed INTEGER DEFAULT 0, --布尔类型改为INTEGER license_status TEXT, due_time INTEGER, capability INTEGER, video_port INTEGER ); const promoteSQL = ` UPDATE device_info SET username = @username, password = @password, addType = @addType, onlineStatus = @onlineStatus WHERE macAddress = @macAddress; `; public promoteToAddedDevice(macAddress: string, authDetails: { username, password }, onlineStatus: string): boolean { const result = this.promoteToAddedStmt.run({ macAddress, // username: AESUtils.encrypt(authDetails.username), // password: AESUtils.encrypt(authDetails.password), username: authDetails.username, password: authDetails.password, addType: DeviceAddType.MANUAL, onlineStatus }); return result.changes > 0; }
最新发布
10-14
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值