自动化数据库包装类的PHP代码生成?

时间:2015-07-25 15:26:00

标签: php mysql automation code-generation

我目前正在尝试为MySQL数据库创建几个包装类。基本上,我的目标是消除编写任何SQL的需要,并将其全部保存在PHP中。我知道大规模这可能不是一个好的解决方案,但它对于我现在正在处理的简单设置很有用=)

我希望能够将此代码挂钩到任何MySQL表并自动生成处理CRUD命令的函数。例如,我在一个名为Users的表中有大约20列,我希望每列有4个函数:Create,Read,Update和Delete。我实际上并不需要所有这些,但这应该只是一个层,然后我构建我真正的PHP应用程序。

我正在尝试自动化这些我正在制作的课程,因为它非常重复,自动生成应该非常简单。

举例说明,姓名'是Users表中的一列:

function createName($name) {

    if($stmt = $this->db->prepare('INSERT INTO ' . $this->table . 
       '(name) values ("' . $name . '")')) {
           $stmt -> execute();
           $stmt -> fetch();
           $stmt -> close();
    }
    else {
        echo "error: " . mysqli_error($this->db);
    }
}

这可以概括为:

function create{columnTitle}({$desiredValue}) {

    if($stmt = $this->db->prepare('INSERT INTO ' . 
                $this->table . '({columnTitle}) values ("' . {$desiredValue} . '")')) {
        $stmt -> execute();
        $stmt -> fetch();
        $stmt -> close();
    }
    else {
        echo "error: " . mysqli_error($this->db);
    }
}

其中{columnTitle}是相关列的名称,{desiredValue}就是您想要的列'该条目的价值。

因此,除了函数名称和参数名称将等于所讨论的表列的名称之外,每个CREATE函数都将完全相同。我觉得我应该能够获取数据库中的所有列并自动更改变量和函数名称,而不是创建80个样板函数(每列4个),然后执行查找/替换一百万次。

有什么想法吗?

我想让它适用于任何数据库表,以便我可以将它放在github上供任何人使用。所以基本上流程就会出现:

  • 抓取数据库中的所有表格
  • 每个表的
    • 抓取表格中的所有列
      • 为所有列生成CREATE函数
      • 为所有列生成READ函数
      • 为所有列生成UPDATE函数
      • 为所有列生成DELETE函数

0 个答案:

没有答案