Learn how to work with Kirby's Database class to connect to MySQL or Sqlite databases.
$db = new Database(array(
'type' => 'mysql',
'host' => '127.0.0.1',
'database' => 'mydb',
'user' => 'mydb_user',
'password' => 'supersecret'
));
$db = new Database(array(
'type' => 'sqlite',
'database' => '/var/data/mydb.sqlite'
));
$users = $db->table('users');
id | username | |
---|---|---|
1 | homer | homer@simpsons.com |
2 | marge | marge@simpsons.com |
3 | lisa | lisa@simpsons.com |
4 | bart | bart@simpsons.com |
4 | maggie | maggie@simpsons.com |
$results = $users->all();
foreach($results as $user) {
echo $user->username();
}
$results = $users->limit(10)->all();
foreach($results as $user) {
echo $user->username();
}
$results = $users->order('username DESC')
->limit(10)
->all();
foreach($results as $user) {
echo $user->username();
}
$results = $users->order('username DESC')
->offset(10)
->limit(10)
->all();
foreach($results as $user) {
echo $user->username();
}
$results = $users->select(array('username', 'email'))
->order('username DESC')
->offset(10)
->limit(10)
->all();
foreach($results as $user) {
echo $user->username();
}
$results = $users->where(array('username' => 'homer'))
->all();
foreach($results as $user) {
echo $user->username();
}
$results = $users->where('username', '=', 'homer')
->all();
foreach($results as $user) {
echo $user->username();
}
$results = $users->where('email', 'LIKE', '%@simpson.com')
->all();
foreach($results as $user) {
echo $user->username();
}
$user = $users->first();
$user = $users->where('email', 'LIKE', '%@simpsons.com')->first();
$user = $users->find(1);
$user = $users->findBy('username', 'homer');
echo $users->count();
echo $users->where('username', 'LIKE', 'H%')->count();
if($id = $users->insert(array(
'username' => 'moe',
'email' => 'moe@szyslak.com'
))) {
echo 'Moe has been added and has the ID: ' . $id;
}
$update = $users->where('id', '=', 2)->update(array(
'username' => 'margery'
));
if($update) echo 'The user has been updated';
if($users->where('id', '=', 1)->delete()) {
echo 'The user has been deleted';
}
if($users->where('email', 'LIKE', '%@simpsons.com')->delete()) {
echo 'All users with a simpsons email address have been deleted';
}
if($users->delete()) {
echo 'All users have been deleted';
}
$results = $users->page(1, 20);
$pagination = $results->pagination();
foreach($results as $users) {
echo $user->username();
}
Read more about the Pagination object.
class UserModel extends Obj {
public function isHomer() {
return $this->username == 'homer';
}
}
$results = $users->fetch('UserModel')->all();
foreach($results as $user) {
if($user->isHomer()) {
echo 'This is Homer';
}
}