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

 骚动的疯子 发布于 2023-02-13 13:45

我有一个wordpress站点,以及一个安装了演示数据的模板.当我在phpmyadmin中打开一些字段时,即使我没有做任何更改并选择其他字段,它也会对该字段进行更新.没问题,它什么都没有更新,因为我做了零修改.然后发生的事情是wordpress网站的前端变得混乱,因为SOMETHING在我正在检查的领域发生了变化.有问题的字段中有大量的HTML代码,还有不少; 和"其中的人物......

我想当我打开字段并关闭它时,update命令会解析字段中的内容,它会看到; 并且"到处都是......我可能是错的.无论如何,当我查看数据并通过mysql shell查询或phpmyadmin复制它,并将其完全更新回到DB之前,SOMETHING正在改变,但即使使用记事本++比较插件并以我能够的方式查看数据,它也没有变化......

这有意义吗?这让我疯了!

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

以下是此问题的视频演示

https://www.youtube.com/watch?v=ljXTDKKmUUw

好吧,答案似乎是,如果数据被序列化存储在字段内的数组中,则必须首先使用php对其进行反序列化,然后再使用php进行读取和序列化.

显然,这是wordpress的一个常见问题,当人们尝试进行更改网址长度的数据库迁移时会造成很多挫败感.

我在这里学到了更多关于这个问题的知识:http: //wpgarage.com/tips/data-portability-and-data-serialization-in-wordpress/

1 个回答
  • 问题是,有问题的数据库条目不仅包含"带有一堆冒号的文本",这是PHP 序列化数据.没错,它是文本,但必须被视为二进制.当您对序列化数据进行任意更改时,例如将单词更改为更长或更短的单词,就会破坏数据结构.当关联代码尝试事后反序列化数据时,它会失败.道德:不要随意编辑序列化数据,否则你会破坏东西.

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

    请注意,这是一个二进制字符串,可能包含空字节,需要像这样存储和处理.例如,serialize()输出通常应存储在数据库的BLOB字段中,而不是存储在CHAR或TEXT字段中.

    无论如何,如果您遵守序列化值的规则或调整相应的结构信息,有一些方法可以编辑PHP序列化数据.甚至还有一些专门的编辑器或在线工具(我还没有对它们进行过测试).
    要了解有关序列化数据结构的更多信息,请查看php.net上链接函数文档中egingell的顶部注释,该文档描述了serialize()'ed值的解剖:

    String - > s:size:value;

    整数 - > i:价值;

    Boolean - > b:value; (不存储"true"或"false",存储"1"或"0")

    空 - > N;

    数组 - > a:size:{键定义;值定义;(每个元素重复)}

    Object - > O:strlen(对象名):对象名:对象大小:{s:strlen(属性名):属性名:属性定义;(每个属性重复)}

    字符串值始终用双引号
    数组键总是整数或字符串
        "null =>'value'"等于's:0:""; s:5:"value";',
        "true =>'value'"等于'i:1; s:5:"value";',
        "false =>'value'"等于'i:0; s:5:"value";',
        "数组(无论内容如何)= >'value'"等同于"非法偏移类型"警告,因为您不能将数组用作键;
    但是,如果使用包含数组的变量作为键,它将等于's:5:"Array"; s:5:"value";',并且尝试将对象用作键将导致与使用数组相同的行为.

    2023-02-13 13:48 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有