Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库中更新后元数据的更改结果_Php_Database_Wordpress - Fatal编程技术网

Php 数据库中更新后元数据的更改结果

Php 数据库中更新后元数据的更改结果,php,database,wordpress,Php,Database,Wordpress,WordPresspost\u meta数组中存在一些问题,它在数据库中发送了错误的详细信息,因此我想更改数据库中的update\u post\u meta的结果,现在我使用以下post meta: update_post_meta($post_id, '_wpsc_vendors', array(19,'enabled',true,rate,30 )); 这将生成此post元键和值: key: _wpsc_vendors value: a:5:{i:0;i:19;i:1;s:7:"enabl

WordPresspost\u meta数组中存在一些问题,它在数据库中发送了错误的详细信息,因此我想更改数据库中的
update\u post\u meta
的结果,现在我使用以下post meta:

update_post_meta($post_id, '_wpsc_vendors', array(19,'enabled',true,rate,30 ));
这将生成此post元键和值:

key: _wpsc_vendors
value: a:5:{i:0;i:19;i:1;s:7:"enabled";i:2;b:1;i:3;s:4:"rate";i:4;i:30;}
现在我也要更改此数据库中的结果值:

a:1:{i:19;a:2:{s:7:"enabled";s:4:"true";s:4:"rate";s:2:"30";}}
数据:

array(19,'enabled',true,rate,30 )
通过WordPress转换为以下内容时:

a:5:{i:0;i:19;i:1;s:7:"enabled";i:2;b:1;i:3;s:4:"rate";i:4;i:30;}
global $wpdb;
$sql = "UPDATE $wpdb->postmeta SET meta_value = '$meta_value' WHERE meta_key = '_wpsc_vendors' AND post_id = $post_id";
$wpdb->query($sql);
意思是:

a:5:是由5项组成的数组

i:0;i:19是索引为0“i:0”的第一个元素,值为整数19

i:1;s:7:“启用”如果元素的索引为1,则字符串为7个字符“已启用”

。。。等等

所需的序列化值似乎无效:

a:1:{i:19;a:2:{s:7:“启用”;s:4:“正确”;s:4:“速率”;s:2:“30”}

也许这会对您有所帮助(使用序列化PHP函数测试)

如果要将值直接存储/更新到表中,可以执行以下操作:

a:5:{i:0;i:19;i:1;s:7:"enabled";i:2;b:1;i:3;s:4:"rate";i:4;i:30;}
global $wpdb;
$sql = "UPDATE $wpdb->postmeta SET meta_value = '$meta_value' WHERE meta_key = '_wpsc_vendors' AND post_id = $post_id";
$wpdb->query($sql);

但我不建议将手工修改的数据存储为序列化,或者直接保存到Peta表,而不是使用UpDeaTePasyMeta函数。

< P>数据:

array(19,'enabled',true,rate,30 )
通过WordPress转换为以下内容时:

a:5:{i:0;i:19;i:1;s:7:"enabled";i:2;b:1;i:3;s:4:"rate";i:4;i:30;}
global $wpdb;
$sql = "UPDATE $wpdb->postmeta SET meta_value = '$meta_value' WHERE meta_key = '_wpsc_vendors' AND post_id = $post_id";
$wpdb->query($sql);
意思是:

a:5:是由5项组成的数组

i:0;i:19是索引为0“i:0”的第一个元素,值为整数19

i:1;s:7:“启用”如果元素的索引为1,则字符串为7个字符“已启用”

。。。等等

所需的序列化值似乎无效:

a:1:{i:19;a:2:{s:7:“启用”;s:4:“正确”;s:4:“速率”;s:2:“30”}

也许这会对您有所帮助(使用序列化PHP函数测试)

如果要将值直接存储/更新到表中,可以执行以下操作:

a:5:{i:0;i:19;i:1;s:7:"enabled";i:2;b:1;i:3;s:4:"rate";i:4;i:30;}
global $wpdb;
$sql = "UPDATE $wpdb->postmeta SET meta_value = '$meta_value' WHERE meta_key = '_wpsc_vendors' AND post_id = $post_id";
$wpdb->query($sql);

<>但我不建议将手动修改的数据存储为序列化,或者直接保存到POMETA表,而不是使用UpDeaTePasyMeta函数。

我不太清楚。您想直接在数据库中更改它,或者想调用以使用不同的参数再次更新发布元数据?请使用不同的参数再次更新发布元数据,这样结果将是:1:{i:19;a:2:{s:7:“已启用”;s:4:“真”;s:4:“速率”;s:2:“30”}我不确定是否理解。您想直接在数据库中更改它,或者您想调用以使用不同的参数再次更新发布元数据?使用不同的参数再次更新发布元数据,这样结果将是:1:{i:19;a:2:{s:7:“已启用”;s:4:“true”;s:4:“rate”;s:2:“30”}可能有办法,请检查是否有办法删除i:0,i:1,i:2,i:3您也可以从该值中获取数组,使用unserialize我认为您不能删除i:0、i:1、i:2、i:3,因为这些索引是由WP在将数据存储到DB中时生成的。即使我测试没有这些索引的序列化值,unserialize函数也会返回一个无效的序列化值。你能用它创建吗?可能有这样做的方法吗?请检查是否有任何方法可以删除I:0,I:1,I:2,I:3你也可以从该值获得一个数组,使用unserialize我认为你不能删除I:0,I:1,I:2,i:3,因为这些索引是在数据库中存储数据时由WP生成的。即使我测试没有这些索引的序列化值,unserialize函数也会返回无效的序列化值?