Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/245.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
当我在phpmyadmin中打开一个字段时,mySQL数据库发生了变化,但我没有做任何更改_Php_Mysql_Wordpress_Phpmyadmin - Fatal编程技术网

当我在phpmyadmin中打开一个字段时,mySQL数据库发生了变化,但我没有做任何更改

当我在phpmyadmin中打开一个字段时,mySQL数据库发生了变化,但我没有做任何更改,php,mysql,wordpress,phpmyadmin,Php,Mysql,Wordpress,Phpmyadmin,我有一个wordpress网站和一个安装了演示数据的模板。当我在phpmyadmin中打开一些字段时,即使我没有做任何更改并选择其他字段,它也会对该字段进行更新。没问题,它没有更新任何内容,因为我没有做任何更改。接下来发生的事情是wordpress网站的前端出了问题,因为我刚刚研究的领域发生了一些变化。所讨论的字段中有大量HTML代码,并且有很多;还有里面的人物 我想当我打开并关闭字段时,update命令解析字段中的内容,它看到的是;到处都是。。。我可能错了。无论如何,当我查看数据并复制它时,无

我有一个wordpress网站和一个安装了演示数据的模板。当我在phpmyadmin中打开一些字段时,即使我没有做任何更改并选择其他字段,它也会对该字段进行更新。没问题,它没有更新任何内容,因为我没有做任何更改。接下来发生的事情是wordpress网站的前端出了问题,因为我刚刚研究的领域发生了一些变化。所讨论的字段中有大量HTML代码,并且有很多;还有里面的人物

我想当我打开并关闭字段时,update命令解析字段中的内容,它看到的是;到处都是。。。我可能错了。无论如何,当我查看数据并复制它时,无论是通过mysql shell查询还是通过phpmyadmin,并像以前一样将其准确地更新回数据库,有些事情正在发生变化,但即使使用记事本++比较插件并尽我所能查看数据,它也没有变化

这有什么意义吗?它快把我逼疯了

这是一个使用火箭主题的wordpress网站,带有龙门框架,以防任何人都熟悉

下面是这个问题的视频演示

好的,答案似乎是,如果数据以序列化方式存储在字段内的数组中,则必须先用php对其进行非序列化,然后再用php对其进行序列化以进行读取和写入

显然,这是wordpress的一个常见问题,当人们试图进行改变url长度的数据库迁移时,这会导致很多挫折

我在这里了解了有关此问题的更多信息:

问题在于,所讨论的数据库条目不仅仅包含带有一组冒号的文本,这是PHP数据。没错,它是文本,但它必须被视为某种二进制。对序列化数据进行任意更改(例如,将一个字更改为更长或更短的字)时,会破坏数据结构。当关联代码随后尝试反序列化数据时,它将失败。寓意:不要粗心地编辑序列化数据,否则会破坏数据

引用PHP:序列化字符串甚至不应该存储在文本字段中

请注意,这是一个二进制字符串,可能包含空字节,以及 需要这样存储和处理。例如,序列化 输出通常应存储在数据库中的BLOB字段中, 而不是字符或文本字段

无论如何,如果您遵守序列化值的规则或调整相应的结构信息,就有办法编辑PHP序列化数据。 甚至有一些专门的或在线的我还没有测试过。 要了解有关序列化数据结构的更多信息,请查看php.net上链接中egingell的顶部注释,该注释描述了序列化值的剖析:

字符串->s:大小:值

整数->i:值

布尔->b:值;不存储true或false,是否存储“1” 或“0”

空->N

数组->a:大小:{键定义;值定义;按重复 元素}

对象->O:strlenobject名称:对象名称:对象 大小:{s:strlenproperty名称:属性名称:属性 定义;每个属性重复}

字符串值总是在双引号中 数组键始终为空 整数或字符串 null=>'value'等于's:0:;s:5:value;', true=>“value”等于“i:1;s:5:value;', false=>“value”等于“i:0;s:5:value;', ArrayWhat内容=>'value'等同于非法偏移量类型警告,因为不能将数组用作键; 但是,如果使用包含数组的变量作为键,则 等于的:5:数组;s:5:value;',以及试图使用一个对象 作为键将导致与使用数组相同的行为


从视频的外观来看,您似乎正在使用非常旧的PMA版本。
我会开始更新PMA、PHP和MySQL,看看特定版本是否有问题。

如果;在战场上,如果我们扔掉了phpmyadmin,你会认为会有不止几个人抱怨它……你使用了什么特殊角色吗?可能是编码搞乱了。前端具体发生了什么?这是我刚刚为这篇文章拍摄的整个问题的叙述视频演示。我很困惑为什么会发生这种情况,但希望我能从各个角度找出原因。您在字段中看到的代码是序列化数据,很可能是序列化并存储为字符串值的数组或对象。