php - 使用主键作为字符串存储网站设置选项

标签 php mysql sql sql-update

我目前正在建立一个小型社交网络进行练习,真的没什么大不了的,我只是想了解更多。

我所坚持的是存储我的网站信息选项。

我检查了其他 CMS 数据库结构,发现大多数都基于主键保存这些数据库,什么是字符串,那就是名称

示例

name           | option      |

site_name      | my site     |
site_desc      | awesome_site|
signup_enabled | 1           |

我喜欢 SocalEngine 的制作方式,他们就是这样做的

name                | option      |

core.site_name      | my site     |
core.site_desc      | awesome_site|
core.signup_enabled | 1           |
activity.limit      | 1           |
activity.enabled    | 1           |
activity.refresh    | 3000        |

如上所示,它们在点之前标识设置类型。所以 core. 是核心设置,activity. os 用于事件设置,这就是我所困惑的

更新部分不是问题,我知道我需要选择特定的主键循环,将主键传回并更新。

我的问题是我迷路了,如何进行选择查询更新查询来确定我正在更新或选择哪个名称。

我的意思是例子

核心形式

"SELECT * FROM settings WHERE core."

事件形式

"SELECT * FROM settings WHERE activity."

正在更新

UPDATE settings
SET column1=value1,column2=value2,...
WHERE core.=some_value;

所以这就是我所坚持的标准,请有人给我一个提示,或者一些基本的例子?谢谢

最佳答案

选择所有核心选项:

SELECT * FROM settings WHERE name like 'core.%'

选择特定事件选项:

SELECT * FROM settings WHERE name ='activity.enabled'

更新特定核心选项:

UPDATE settings
SET option='new site name'
WHERE name = 'core.site_name';

关于php - 使用主键作为字符串存储网站设置选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19699595/

相关文章:

php - 适用于 blob 的 Azure PHP SAS

java - 如何解决mysql中的长度超出异常

c# - 如何有条件地启动一个 Action ?

MySQL - 如何在不使用 AUTO_INCRMENT 的情况下添加唯一的 INT 值?

mysql - SQL Select 其中 user1 有多个,而 user2 没有

PHP cookie 特殊字符

php - 通过多种拼写选项之一搜索名称

php - 在观察者中的 PHP 页面内运行 JavaScript - Magento

php - SQL 查询检查具有特定电子邮件地址的表行失败

sql - 没有运气在子选择 : ORA-00904: invalid identifier, 和 ORA-06553 中获取最新条目:调用中参数的数量或类型错误