ارتباط مستقیم با پایگاه داده
از کلاس packages\base\db برای ارتباط با پایگاه داده استفاده میشود .
برای راحتی استفاده، متد های این کلاس به صورت ایستا و static نوشته شده که هر کدام یک عمل در زبان SQL را تشکیل میدهند .
متد get
با استفاده از این متد میتوانید اطلاعات را به صورت دسته جمعی از پایگاه داده دریافت کنید . نوع بازگشتی این متد آرایه ای از ردیف های جدول درخواستی است . پارامتر اول این متد نام جدول، پارامتر دوم تعداد ردیف ها و در پارامتر سوم، نام ستون و یا ستون های درخواستی از جدول را دریافت می کند .
db::get(tablename, numrows, columns);
مثال 1
$users = db::get("users");
// Query: SELECT * FROM `users`;
/*
$users = array(
array(
"id" => 1,
"name" => "Sam smith",
"email" => "[email protected]"
),
array(
"id" => 2,
"name" => "Sam smith",
"email" => "[email protected]"
)
);
*/
همچنین میتوانید این متد را به صورت های زیر فراخوانی کنید
$users = db::get("users", null, array("id"));
// Query: SELECT `id` FROM `users`;
/*
$users = array(
array(
"id" => 1
),
array(
"id" => 2
)
);
*/
$users = db::get("users", 1);
// Query: SELECT * FROM `users` LIMIT 1;
/*
$users = array(
array(
"id" => 1,
"name" => "Sam smith",
"email" => "[email protected]"
)
);
*/
متد getOne
با استفاده از این متد میتوانید ، اطلاعات فقط یک ردیف را از پایگاه داده دریافت کنید . نوع بازگشتی این متد یک آرایه است که نام ستون ها در کلید های این آرایه و مقدار هر ایندکس، مقدار آن است . پارامتر اول این متد نام جدول و پارامتر دوم، نام ستون و یا ستون های درخواستی از جدول را دریافت می کند .
db::getOne(tablename, columns);
مثال 1
$user = db::getOne("users");
// Query: SELECT * FROM `users` LIMIT 1;
/*
$user = array(
"id" => 1,
"name" => "Sam smith",
"email" => "[email protected]"
);
*/
مثال 2
$user = db::getOne("users", array("name"));
// Query: SELECT `name` FROM `users` LIMIT 1;
/*
$user = array(
"name" => "Sam smith",
);
*/
متد getValue
این متد فقط مقدار یک ستون جدول را از پایگاه داده دریافت میکند . نوع بازگشتی این متد یک بسته به تعداد مقدار های بازگشتی میتواند یک مقدار ثابت و یا یک آرایه باشد که بسته به نوع ستون، نوع مقدار متفاوت خواهد بود . این متد در پارامتر اول نام جدول، پارامتر دوم نام ستون و در پارامتر سوم تعداد مقدارهای بازگشتی را دریافت میکند .
db::getValue(tablename, column, limit);
مثال 1
$count = db::getValue("users", "COUNT(*)");
// Query: SELECT COUNT(*) as `val` FROM `users` LIMIT 1;
echo "{$count} users found";
همچنین میتوانید این متد رو به صورت های زیر فراخوانی کنید
$logins = db::getValue("users", "login");
// Query: SELECT `login` as `val` FROM `users` LIMIT 1;
$logins = db::getValue("posts", "title", null);
// Query: SELECT `title` as `val` FROM `posts`;
/*
Array
(
[0] => Announcing GitHub Desktop 1.2
[1] => GitHub Marketplace celebrates one year
.
.
.
)
*/
$logins = db::getValue("posts", "title", 5);
// Query: SELECT `title` as `val` FROM `posts` LIMIT 5;
/*
Array
(
[0] => Announcing GitHub Desktop 1.2
[1] => GitHub Marketplace celebrates one year
[2] => New improvements to the Slack and GitHub integration
[3] => Ludum Dare 41—Games to play, hack on, and learn from
[4] => GitHub contributes to UN free speech expert's report on content moderation
)
*/
متد where
با استفاده از این متد میتوانید در یک جدول ، ردیف هایی که فقط با شرط عنوان شده در این متد مطابقت دارند را دریافت کنید . پارامتر اول این متد نام ستون و در پارامتر دوم مقدار شرط دریافت می شود .در پارامتر سوم عملگر شرط و در پارامتر چهارم ارتباط این شرط با شرط های دیگر مشخص میشود .
db::where(column, value, operator, cond);
مثال 1
db::where("id", 1);
$user = db::getOne("users");
// Query: SELECT * FROM `users` WHERE `id` = 1 LIMIT 1;
/*
$user = array(
"id" => 1,
"name" => "Sam smith",
"email" => "[email protected]"
);
*/
مثال 2
db::where("id", 1);
db::where("name", "John", "=", "OR");
$users = db::get("users");
// Query: SELECT * FROM `users` WHERE `id` = 1 OR `name` = "John";
/*
$users = array(
array(
"id" => 1,
"name" => "Sam smith",
"email" => "[email protected]"
),
array(
"id" => 5,
"name" => "John",
"email" => "[email protected]"
)
);
*/
مثال 3
db::where("id", 2, ">=");
$users = db::get("users");
// Query: SELECT * FROM `users` WHERE `id` >= 2;
/*
$users = array(
array(
"id" => 2,
"name" => "Sam smith",
"email" => "[email protected]"
),
array(
"id" => 5,
"name" => "John",
"email" => "[email protected]"
)
);
*/
مثال 4
db::where("id", array(2, 5), "IN");
$users = db::get("users");
// Query: SELECT * FROM `users` WHERE `id` IN (2, 5);
/*
$users = array(
array(
"id" => 2,
"name" => "Sam smith",
"email" => "[email protected]"
),
array(
"id" => 5,
"name" => "John",
"email" => "[email protected]"
)
);
*/