توضیحات
با این تابع می توانید دیتابیس(جدول ها و ستون ها) خود را بسازید یا بروزرسانی کنید
دیگر نیازی به ساخت/بروز کردن دستی دیتابیس خود ندارید! این کار را کد برای شما انجام می دهد
شکل تابع
class MmbDbBase_Sql {
public function installation(string $dataPath, string $tag = false);
}
در ورودی اول مسیر فایلی که اطلاعات ساختار دیتابیس در آن هست را وارد می کنید، و در ورودی دوم در صورت لزوم تگی را جهت شناسایی وارد می کنید
این تابع خروجی ای از وضعیت کاری که انجام داده است بصورت رشته به شما می دهد
ساختار Json
اگر بخواهید ساختار را با جیسون بسازید، این کار بسیار ساده است!
کافی ست یک فایل json بسازید و دیکشنری ای را باز کنید که کلید های آن نام جدول و مقدار های آن ستون های جدول اند:
{
"table1": ...,
"table2": ...
}
اکنون ستون ها را بصورت دیکشنری هایی که کلید های آنان نام ستون و مقدار های آنان نوع ستون را مشخص می کنند:
{
"table1": {
"col": "type"
},
"table2": {
"number_col": "INT",
"text_col": "TEXT"
}
}
همچنین برای داشتن PRIMARY KEY کافیست علامت * را به نوع ستون اضافه کنید
اگر می خواهید چند مقدار متفاوت را در یک فایل بریزید، کافیست از Tag استفاده کنید! کل این مقدار ها را درون نوع دیکشنری ای بریزید و به تابع نام این تگ را بدهید:
{
"robot_database": {
"table1": {
"col": "type"
}
}
}
در مرحله بعد کافیست ادرس این فایل را به تابع بدهیم
در نهایت به عنوان مثال داریم:
{
"users": {
"id": "BIGINT",
"step": "TEXT"
},
"posts": {
"id": "INT*",
"name": "TEXT",
"publish": "TINYINT(1)"
}
}
ساختار کامنت PHP
اگر بخواهید ساختار را در کامنت های php خود داشته باشید، می توانید تنها با برداشتن چند قدم این کار را انجام دهید!
اول از همه باید یک کامنت(چند خط) باز کنید:
/*
*/
حال باید یک تگ را به این کامنت اختصاص بدهید و در خط اول عین همان تگ را بنویسید:
/* My Database
*/
(توجه کنید که از این به بعد هر مقدار را باید در یک خط جدا وارد کنید!)
اکنون نوبت به جدول هاست! جدول ها را در چند خط بنویسید و جلوی نام آنها علامت دو نقطه بگذارید(اینتر های اضافی جهت منظم کردن می باشند و به اینتر اضافی حساس نمی باشد)
/* My Database
table1:
table2:
*/
اکنون بعد از هر جدول، ستون ها و نوع ستون ها را باید وارد کنید. در هر خط ابتدا نام ستون و سپس با فاصله نوع آن را:
/* My Database
table1:
col INT
col2 TEXT
col3 BIGINT
table2:
id int*
*/
توجه کنید که شما مجازید قبل و بعد از این ها، کاراکتر های غیر حروف وارد کنید:
/* My Database
**
** table1:
** col INT
** col2 TEXT
** col3 BIGINT
**
** table2:
** id int*
**
**/
اکنون کافیست مسیر این فایل و تگ این کامنت را به تابع بدهید!
مثال
شما نباید از این تابع در قسمت هایی که مکرر در حال اجرا هستند استفاده کنید! زیرا این تابع نیاز به پردازش دارد و باید تنها در قسمت های خاص استفاده کنید!
مثال #1
شما می توانید در سورس اصلی خود بصورت شرط ورودی GET این کار را انجام دهید:
if (@$_GET['db'] == 'refresh')
{
$res = $db->installation(__FILE__, "Database");
echo "Result: $res";
}
/* Database
**
** users:
** id int
** step text
**
**/
مثال #2
می توانید در پنل خود گزینه ای به نام 'بروزرسانی دیتابیس' ایجاد کنید و بنویسید:
if ($text == 'بروزرسانی دیتابیس' && $isAdmin)
{
$res = $db->installation(__DIR__.'/db.json');
$msg->replyText("Result: $res");
}