PHP中常见的CRUD函数

Vin*_*yak 6 php crud

有没有一种简单的方法可以CRUD (create, retreive, update, delete)PHPWITHOUT中使用任何框架为每个操作编写一个公共函数.例如,我希望有一个创建函数,它将表名和字段名作为参数并将数据插入到mySQL database.另一个要求是该函数应该能够支持连接,即它应该能够在需要时将数据插入到多个表中.

我知道这些任务可以通过使用框架完成,但由于各种原因 - 这里解释得太冗长 - 我不能使用它们.

Ser*_*rov 7

如果你试着编写这样的函数,你很快就会发现你刚刚实现了另一个框架.


lew*_*wis 1

我写的正是这个东西,它是一种抛光的脚手架。它基本上是一个类,其构造函数采用要使用的表、包含字段名称和类型的数组以及操作。基于此操作,对象调用其自身的方法。例如:

这是我传递的数组:

$data = array(array('name' => 'id', 'type' => 'hidden')
          , array('name' => 'student', 'type' => 'text', 'title' => 'Student'));
Run Code Online (Sandbox Code Playgroud)

然后我调用构造函数:

new MyScaffold($table, 'edit', $data, $_GET['id']);
Run Code Online (Sandbox Code Playgroud)

在上面的情况下,构造函数调用“edit”方法,该方法提供一个表单,显示 $table 中的数据,但仅显示我在数组中设置的字段。它使用的记录由 $_GET 方法确定。在此示例中,“学生”字段显示为文本框(因此为“文本”类型)。“标题”只是使用的标签。由于“隐藏”,ID 字段不会显示以供编辑,但可供程序使用。

如果我传递了“删除”而不是“编辑”,它将从 GET 变量中删除该记录。如果我只传递一个表名称,它将默认为带有编辑、删除和新建按钮的记录列表。

它只是一个包含所有 CRUD 且具​​有大量可定制性的类。您可以根据自己的意愿将其变得复杂或简单。通过将其设为通用类,我可以将其放入任何项目中,然后仅传递指令、表信息和配置信息。对于一张表,我可能不想允许通过脚手架添加新记录,在这种情况下,我可能在参数数组中将“newbutton”设置为 false。

它不是传统意义上的框架。只是一个独立的类,在内部处理所有事情。这样做有一些缺点。关键是我的所有表都必须有一个名为“id”的主键,如果没有这个,您可以逃脱,但这会使事情变得复杂。另一个原因是必须准备一个大数组,详细说明要管理的每个表的信息,但您只需要做一次。

有关此想法的教程请参见此处