【问题标题】:PHP install method in a class what requires database tables/columns需要数据库表/列的类中的PHP安装方法
【发布时间】:2013-11-21 16:41:44
【问题描述】:

我想知道当你们需要数据库中的表运行或在它运行之前做一些其他事情时,你们是如何编写类的?

您是使用一种方法在数据库中插入表,还是编写类以要求表中的某些列可以在某些设置变量中定义?

【问题讨论】:

    标签: php mysql database methods installation


    【解决方案1】:

    虽然这个问题的答案是见仁见智,但我通常会在类构造函数中创建它们(首先检查它们是否存在),但是我会允许用户指定自己的名称和前缀以避免冲突和数据库中的数据丢失。

    原因是您可以完全控制表格的构建方式,而不是信任用户正确生成表格。

    这是假设您的类将被其他人使用,如果它仅供您自己使用,那么假设您能够自己构建表并且可以从类中移除该开销是足够安全的。

    这也取决于你的类的用途,如果它是一个插件,那么你绝对应该为用户创建这些,这样他们就不必接触底层代码,遵循你的插件系统的任何数据库命名约定正在整合。

    这只是我个人的风格,绝不是标准,也不一定是最佳方式。

    【讨论】:

    • 在 __constructor 中添加检查不是浪费 MySQL 调用吗?如果错误表明表不存在,那么检查错误类型然后尝试以某种方法访问表是否会尝试插入表?是的,这是一个见仁见智的问题,但看看其他人做什么很有趣,我很好奇。
    • @Andreas 这取决于您的应用程序。没有一个地方可以放任何东西。我想你可以节省更多的时间来调用它每次使用而不是每次你希望对数据库进行操作。除非您有连接到数据库的延迟,否则这肯定不会有太大的开销,在这种情况下应该首先修复它。如果没有关于您的应用程序性质的信息,就不可能提供如此具体的见解。这只是一个概括的陈述,例如,如果我正在编写一个 WordPress 插件,我会添加一个钩子来在插件激活时创建表。
    • 您可能会想念我,它只会在手头的任务失败并且错误消息会说该表不存在时才执行该方法。这只是一个一般性问题,但是是的,它来自于我从来没有真正觉得我的安装方法解决方案是一个好主意。我确实喜欢 WP 插件激活功能,这是我猜的灵感。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 2021-04-06
    • 2016-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多