PHP可重用的功能

时间:2011-10-15 21:43:30

标签: php sql oop

我有两个函数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参数数量(来自表单),表格中的字段数量,以及数据库中的表格是什么。”

我已经知道了为这个函数添加一个参数,它将定义存储数据的表的名称,每个表单都有自己的表名,但是函数如何确定表的字段,以及在命令字符串中使用它们的字段的名称?

提前谢谢

1 个答案:

答案 0 :(得分:1)

您可以使用DESCRIBE TABLE确定表格的字段。在那之后,您可能会发现将它存储在类中更加清晰,而不是让很多全局变量浮动。

之后,您可能希望通过缓存DESCRIBE TABLE结果进行优化,这样您就不必每次都抓取它们。

在那之后,您可能会意识到您已经基本上重新创建了大多数Active Record类型库尝试执行的操作,并且您最好只使用其中一个。

Doctrine是一个不错的选择(尽管它使用代码生成)。