我正在为我的一个项目使用greenDAO 3.1。由于我需要将我的ID设为x[0:-4:-1]
,因此我决定将其存储为 <?php
function myfunction($json, $field, $value)
{
foreach($json as $key11 => $pro1){
foreach($pro1['columns'] as $key1 => $pro){
foreach($pro as $k => $products){
foreach($products as $key => $product)
{
if ( $product['settings'][$field] === $value ){
$json[$key11]['columns'][$key1][$k][$key]['settings']['counter_title']="FOUND IT";
break;
}
}
}
}
}
return $json;
}
$json[15]['columns'][1]['addons'][2]['settings']['number'] ='val1';
$json[15]['columns'][2]['addons'][2]['settings']['number'] = 'val2';
$json[15]['columns'][3]['addons'][2]['settings']['number'] = 'val3';
$json[15]['columns'][4]['addons'][2]['settings']['number'] = 'val4';
$x= myfunction($json, 'number', 'val3');
print_r($x);
。现在问题是我无法使用UUID
或ByteArray
方法更新我的实体,我必须使用update
或updateInTx
方法。
有人可以告诉我发生了什么,为什么我不能使用insertOrReplace
方法更新?
使用insertOrReplaceInTx
方法代替update
方法是否有任何不足之处?
这是我的insertOrReplace
架构代码:
update
这是我的更新代码:
Entity
答案 0 :(得分:1)
经过大量的搜索和麻烦,我找到了原因。
由于您无法在BLOB
中查询sqlite
,因此update
方法在id
子句中使用的条件超过WHERE
,{{1 }}方法找不到我正在寻找的记录。另一方面,当我使用update
方法之一时,由于insertOrReplace
字段是唯一的,因此无法将多余的id
插入到表中,并且它完全将旧记录替换为我正在尝试更新。因此,id
方法没有问题,真正的问题是将update
用作ByteArray
。
出于同样的原因,我在使用id
方法选择时也遇到了错误。