我使用json_encode将数据作为数组存储在我的DB字段中。数据按预期存储,一旦运行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 ) );它是以数组的形式插入新值,但要重写以前的值,而不是添加到其中。
任何小费都要感谢!
发布于 2014-11-23 13:58:31
查看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 );时,将一直执行
希望这能有所帮助。
加布里埃尔
https://stackoverflow.com/questions/27089670
复制相似问题