我有两个函数addCategory,addArticle如下:
function addCategory(){
$title=$_POST['title'];
$description=$_POST['description'];
$photo=$_FILE['photo'];
$cmd='INSERT INTO tbl_categ(title,description,photo)VALUES(:title,:description,:photo)';
$stmt=$pdo->prepare($cmd);
$stmt->bindParam(':title',$title);
$stmt->bindParam(':description',$description);
$stmt->bindParam(':photo',$photo);
$stmt->execute();
}
这是函数addArticle:
function addArticle(){
$title=$_POST['title'];
$id_categ=$_POST['id_categ'];
$texte=$_POST['texte'];
$keywords=$_POST['keywords'];
$photo=$_FILE['photo'];
$cmd='INSERT INTO tbl_categ(id_categ,title,texte,keywords,photo)VALUES(:id_categ,:title,:texte,:keywords,:photo)';
$stmt=$pdo->prepare($cmd);
$stmt->bindParam(':id_categ',$id_categ);
$stmt->bindParam(':title',$title);
$stmt->bindParam(':texte',$texte);
$stmt->bindParam(':keywords',$keywords);
$stmt->bindParam(':photo',$photo);
$stmt->execute();
}
正如您所看到的,这两个函数正在执行相同的任务,但是使用不同的表...它是关于“添加”操作...所以我的目标是只创建一个可以为每个工作的添加功能“添加“动作无论它的POST参数数量(来自表单),表格中的字段数量,以及数据库中的表格是什么。”
我已经知道了为这个函数添加一个参数,它将定义存储数据的表的名称,每个表单都有自己的表名,但是函数如何确定表的字段,以及在命令字符串中使用它们的字段的名称?
提前谢谢
答案 0 :(得分:1)
您可以使用DESCRIBE TABLE
确定表格的字段。在那之后,您可能会发现将它存储在类中更加清晰,而不是让很多全局变量浮动。
之后,您可能希望通过缓存DESCRIBE TABLE
结果进行优化,这样您就不必每次都抓取它们。
在那之后,您可能会意识到您已经基本上重新创建了大多数Active Record类型库尝试执行的操作,并且您最好只使用其中一个。
Doctrine是一个不错的选择(尽管它使用代码生成)。