我使用json_encode将数据存储在我的一个数据库字段中作为数组。数据按预期存储,一旦我使用
运行json_decode,我就可以检索和查询数组if ( array_key_exists( 'my_key', json_decode( $mydb->field ) ) ) ...
我现在要做的是通过添加额外的$ key =>来更新此数组; $ value,但我不能为我的生活做好准备!
我目前正在使用......
if( $event->cronned != '' ) {
$cron_update = json_decode( $event->cronned );
}
if( !is_array( $cron_update ) ) $cron_update = array();
$cron_update[$mdjm_schedules['balance-reminder']['slug']] = time();
$update_args = array(
'last_updated_by' => '0',
'last_updated' => date( 'Y-m-d H:i:s' ),
'cronned' => json_encode( $cron_update ),
);
$update_enquiry = $wpdb->update( $db_tbl, $update_args, array( 'event_id' => $event->event_id ) );
它将新值作为数组插入,但是先写入以前的值而不是添加它。
任何提示赞赏!
答案 0 :(得分:0)
查看PHP函数json_decode的定义:
mixed json_decode ( string $json [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )
在您的情况下,您必须使用第二个参数TRUE
,因为您将解码的JSON作为关联数组而不是PHP对象处理。
特别是你的行:
if( !is_array( $cron_update ) ) $cron_update = array();
json_decode( $event->cronned, TRUE );
时,会一直执行
希望这有帮助。
加布里埃尔