该项目的愿景是使开发人员毫不费力地执行基本的CRUD操作,而无需编写自定义PHP代码。这些脚本被设计为动态,使用户可以通过了解提供的文档并提出HTTP请求来与API进行交互。
create.php )read.php )update.php )delete.php )file-upload.php )该文档提供了一组专为基本CRUD操作(创建,读取,更新,删除)和文件上传的PHP脚本的概述。这些脚本旨在用作关系数据库中数据的API。
该项目提供了一组PHP脚本,旨在用作关系数据库上的CRUD(创建,读取,更新,删除)操作的简单API。此外,它包括一个用于处理文件上传的脚本。这些脚本旨在提供一种灵活且可扩展的解决方案,用于与后端服务器管理数据交互。
在使用脚本之前,请确保正确配置数据库连接。连接详细信息可以在configuration/connection.php文件中找到。修改文件以设置数据库主机,用户名,密码和数据库名称。
示例configuration/connection.php :
define ( ' DB_SERVER ' , ' YOUR_HOSTNAME ' );
define ( ' DB_USERNAME ' , ' YOUR_USERNAME ' );
define ( ' DB_PASSWORD ' , ' YOUR_PASSWORD ' );
define ( ' DB_NAME ' , ' YOUR_DATABASE ' );描述:此脚本根据提供的JSON数据处理数据库中新记录的创建。
table (必需):数据库表的名称以插入数据中。validation (可选):数据的验证规则。data (必需):要插入的一系列记录。 该validation用于根据提供的规则验证数据。以下验证规则可用:
required :该字段不得为空。string :字段必须是有效的字符串。name :该字段必须是有效的名称,并且没有任何整数或特殊字符。email :该字段必须是有效的电子邮件格式。numeric :字段必须是数字。min-length:X :字段必须至少为x字符长。max-length:X :字段必须最多为x字符长。length:X :字段必须完全是x字符长。unique :字段值必须在指定表|中是唯一的。它将在更新记录时检查id ,如果相同,则只需更新列即可。 body {
"table" : " users " ,
"validation" : [
{
"name" : " required|string " ,
"email" : " required|email|unique " ,
"phone" : " required|numeric|unique|length:10 " ,
"password" : " required|min-length:6 " ,
"age" : " optional|numeric "
}
],
"data" : [
{
"name" : " Imdadullah " ,
"email" : " [email protected] " ,
"phone" : " 9992229990 " ,
"password" : " VerySecurePassword " ,
"age" : 22
}
]
}描述:此脚本根据指定参数从数据库中检索数据。
table (必需):查询数据库表的名称。select (必需):一系列要选择的列。默认为所有列(*)。join (可选):一系列加入条款以执行加入。conditions (可选):带有on , type和value对象的条件数组,用于过滤数据。rawConditions (可选):一系列用于过滤数据的原始条件,使您确保通过conditions或rawConditions 。order (可选):带有on对象并type用于订购数据的对象。limit (可选):限制返回的记录数。 body {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"conditions" : [
{
"on" : " age " ,
"type" : " >= " ,
"value" : " 18 "
},
{
"on" : " status " ,
"type" : " = " ,
"value" : " active "
},
{
"on" : " email " ,
"type" : " LIKE " ,
"value" : " @gmail.com% "
}
],
"limit" : 10
}rawConditions示例body {
"table" : " users " ,
"select" : [ " id " , " name " , " email " , " age " ],
"order" : { "on" : " id " , "type" : " DESC " },
"rawConditions" : [
" WHERE age >= '18' OR type = 'customer' AND status = 'active' "
]
}JOIN参数的示例body注意:您必须提及每个表名称以及要使用的JOIN名称
{
"table" : " users " ,
"select" : [
" users.name " ,
" users.email " ,
" items.title " ,
" items.price " ,
" purchases.amount " ,
" purchases.created_at AS purchased_date "
],
"conditions" : [
{
"on" : " purchases.item_id " ,
"type" : " = " ,
"value" : " 102 "
}
],
"join" : [
{
"table" : " purchases " ,
"on" : [ " purchases.user_id " , " users.id " ],
"type" : " LEFT "
},
{
"table" : " items " ,
"on" : [ " items.id " , " purchases.item_id " ],
"type" : " LEFT "
}
]
}描述:此脚本根据指定参数更新数据库中的现有记录。
table (必需):查询数据库表的名称。data (必需):要更新的字段和值数组。conditions (必需):一系列用于识别记录更新的条件。validation (可选):数据的验证规则。 body {
"table" : " users " ,
"data" : [
{
"name" : " Imdadullah Babu " ,
"age" : 22
}
],
"validation" : [
{
"name" : " required|string " ,
"age" : " optional|numeric "
}
],
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}描述:此脚本基于指定参数从数据库中删除记录。
table (必需):要从中删除的数据库表的名称。conditions (必需):识别记录删除的一系列条件。 body {
"table" : " users " ,
"conditions" : [
{
"on" : " id " ,
"type" : " = " ,
"value" : " 1 "
}
]
}描述:此脚本将文件上传到指定的目标。
fileDestination (必需):将存储文件的目录。fileValidation (必需):允许的文件扩展名的逗号分隔列表。注意:您可以一次上传多个文件,这不会插入数据库表中,您将获得url作为响应,并且可以将其保存到数据库中。
< script >
const uploadButton = document.getElementById("button");
uploadButton.addEventListener("click", async function () {
const fileInput = document . getElementById ( "file" ) ;
const imageInput = document . getElementById ( "image" ) ;
const file = fileInput . files [ 0 ] ;
const image = imageInput . files [ 0 ] ;
const formData = new FormData ( ) ;
formData . append ( "file" , file ) ;
formData . append ( "image" , image ) ;
formData . append ( "fileDestination" , "files" ) ; // Files will be uploaded to the mentioned destination on the 'uploaded' directory
formData . append ( "fileValidation" , [ "jpg" , "png" , "pdf" ] ) ;
const request = await fetch ( "YOUR_API_REQUEST_ENDPOINT" , {
method : "POST" ,
body : formData ,
} ) ;
const response = await request . json ( ) ;
console . log ( response ) ;
} );
</ script > {
"file": "uploads/files/2024011984368.jpg",
"image": "uploads/files/2024011960039.jpg"
}
注意:根据项目的要求自定义和扩展脚本。确保在生产环境中实施适当的验证和安全措施。
对于其他安全措施或自定义逻辑,开发人员可以通过将自己的逻辑添加到configuration/custom-functions.php文件来扩展功能。这提供了一个空间,可以根据项目要求合并令牌验证,自定义身份验证或任何其他安全措施。
该项目是由Imdadullah Babu开发的,这些脚本旨在为PHP开发人员提供基础,以将基本数据库操作集成并在不编写可重复代码的情况下将上传到其项目中。
该项目是开源的,我们欢迎全球开发人员的捐款。无论您有兴趣添加新功能,改进文档,修复错误还是建议增强功能,您的贡献都很有价值。
共同使我们可以使该项目对开发人员社区更加通用和有益。您的贡献(无论大小,都得到高度赞赏。
感谢您成为我们开源旅程的一部分!