我有一个包含变量的 .php 页面,每个变量都与许多不同的搜索条件相关联。我认为将所有变量作为一个巨大的字符串塞入数据库是最简单的。
然后我认为将变量及其声明作为一个巨大的字符串会更容易。
所以我的意思是,不仅仅是这个:
Stewie
101
Green
相反,我希望将其作为数据库中的一个大 blob:
$user_name = 'Stewie';
$pants_size = '101';
$favorite_eggs = 'Green';
这样一来,我就可以非常轻松地捕获和提取大量用户偏好数据,而无需在数组方面做太多工作。毕竟,我必须经常更改页面,以至于更改数组会很头疼。
如果我能做到这一点,我就可以简单地一次性重新声明所有变量,我就不必再考虑了。
记录不需要可搜索,只需使用变量声明(如 $var='value'; 使用引号和所有)提取即可。
目前我调查的情况如下:
- 一个 javascript 选项。是的,我知道可以用 javascript 做一些复杂的事情,但它比我的“我想回显的一个大变量,但神奇地也在其中声明变量”方法复杂得多。如果我这样做,我也可以做数组。
- 一个数组选项。这涉及 .php 中的 implode/explode 东西,我担心我将不得不在太久之前结束选择。但是,如果可能的话,我宁愿采用我设想的一步法。
- “将每个变量分别存储在数据库中它自己的字段中”选项。这太可怕了,因为字段更改(并添加到)的频率足以让我发疯。我会更早地选择阵列选项,因为它只是一些小的用户偏好。
任何帮助都将不胜感激,即使是告诉我“这是不可能的。我推荐 [XYZ]。”
谢谢!
编辑:dave e 在下面有一个很好的解决方案,可以通过 eval 来检索此类数据。但我仍然对如何将这些数据导入数据库一开始感到困惑。以同样的方式存储 >100 个变量及其声明($variable_name='value')有点令人困惑!
最佳答案
像这样做一个选项数组:
$option_array['user_name'] = 'Stewie';
$option_array['pants_size'] = '101';
使用序列化来存储数据
$stored_string = serialize($option_array);
当您从数据库中取回数据时,将其反序列化 $option_araay = unserialize($option_array);
!
关于php - 我可以将一个字符串存储到 mySQL 中的单个字段中,我可以在 PHP 中回显,它也声明了变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5687202/