Seçim Yöntemleri


    × Bunları biliyor muydunuz?
"Konsoldan 'php zerocore create-grand-vision' gibi basit bir komutla tüm veritabanı ve tablolarının model dosyasını oluşturabilirsiniz."


Bu bölümde veritabanı fonksiyonlarının kullanımına yer verdik. Genellikle SELECT sorguları ile kullanılırlar. Son parametre true belirtilmediği sürece return değeri $this'dir. Son parametre true olarak ayarlanırsa string çıktı verir. Böyle kullanımın amacı gerektiğinde birbirlerinin içinde kullanılmasını sağlamaktır.

 

 

# Yöntemler


Aşağıda DB:: kütüphanesinin SELECT deyimi ile kullanılabilir yöntemlerin listesi gösterilmiştir.

DB::__call(string ...$args) : mixed
DB::switchCase(string $key, array $conditions = [], bool $return = false) : mixed
DB::ifElse(string ...$args) : mixed
DB::ifNull(string ...$args) : mixed
DB::nullIf(string ...$args) : mixed
DB::currentUser(string ...$args) : mixed
DB::sessionUser(string ...$args) : mixed
DB::systemUser(string ...$args) : mixed
DB::connectionId(string ...$args) : mixed
DB::database(string ...$args) : mixed
DB::schema(string ...$args) : mixed
DB::lastInsertId(string ...$args) : mixed
DB::rowCount(string ...$args) : mixed
DB::versionInfo(string ...$args) : mixed

 

 

# __Call


SELECT deyimi ile kullanılabilen AVG, MIN, MAX gibi deyimlerin neredeyse tamamını kullanabilmenizi sağlar.

Çağrılabilir Yöntemler

sum() variance() abs() mod() asin()
acos() atan() atan2() ceil() ceiling()
cos() cot() crc32() degrees() exp()
floor() ln() log10() log2() log()
pi() pow() power() radians() rand()
round() sign() sin() sqrt() tan()
ascii() field() format() lower() upper()
length() ltrim() substring() ord() position()
quote() repeat() rtrim() soundex() space()
substr() trim() ucase() lcase() benchmark()
charset() coercibility() user() collation() database()
schema() avg() min() max() count()

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed Yöntemlerin son parametresi true olarak ayarlanması durumuda string çıktı üretir.
Aksi halde object yani nesnenin kendisini döndürür.

Kullanımlar

Aşağıda bazı örnek kullanımlar gösterilmiştir.

Avg
output( DB::avg('id', 'as avgID')->avg('user_id', 'as avgUserID')->get('users')->row() );
avgID     => string '28.5000'
avgUserID => string '130.0000'
echo DB::stringQuery(); 
SELECT AVG(id) as avgID,AVG(user_id) as avgUserID FROM users
Min
output( DB::avg('id', 'as avgID')->min('user_id', 'as minUserID')->get('users')->row() );
avgID     => string '28.5000'
avgUserID => string '1'
echo DB::stringQuery(); 
SELECT AVG(id) as avgID,MIN(user_id) as minUserID FROM users
 Max
output( DB::max('id', 'as maxID')->min('id', 'as minID')->get('users')->row() );
maxID => string '37'
minID => string '1'
echo DB::stringQuery();
SELECT MAX(id) as maxID,MIN(id) as minID FROM users
Count
$query = DB::count('id')->get('users');

output($query->row());
output($query->stringQuery());
COUNT(id) => string '37',
SELECT COUNT(id) FROM users  

 

 

# SwitchCase


SQL CASE - ELSE - END deyiminin karşılığıdır. Sorguda karar yapısı kullanmak için oluşturulmuştur.

Parametreler

string $key Anahtar.
array $condition Koşullar.
default / else Koşulun sağlanmaması durumunda izlenecek yol.
as Sorgu sonucu dönen değere takma isim vermek içindir.
bool $return = false Değer döndürsün mü?
return mixed

Kullanımlar

output
( 
    DB::switchCase('id', ['25' => 'id', 'default' => 'name', 'as' => 'ID'])
      ->get('users')
      ->row() 
); 
ID => string '25' ( length = 4 ),

$return parametresinin true ayarlanması durumunda yöntem string çıktı verecektir.

echo DB::switchCase('id', ['25' => 'id', 'default' => 'name', 'as' => 'ID'], true);
CASE id WHEN 25 THEN id ELSE name END as ID

 

 

# IfElse


SQL IF deyiminin karşılığıdır.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

echo DB::ifElse('id = 25', 'name', 'id', 'as retval')->getString('users');
SELECT IF(id = 25,name,id) as retval FROM users

Yukarıdaki örnekte dikkat edilirse takma isim vermek için son parametre kullanılmıştır.

 

 

# IfNull


SQL IFNULL deyiminin karşılığıdır.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

output( DB::ifNull('name', 'id', 'as retval')->get('users')->row() ); 

echo DB::stringQuery();
SELECT IFNULL(name,id) as retval FROM users

 

 

# NullIf


SQL NULLIF deyiminin karşılığıdır.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

output( DB::nullIf('name', 'id', 'as retval')->get('test')->row() ); 

echo DB::stringQuery();
SELECT NULLIF(name,id) as retval FROM users

 

 

# CurrentUser


SQL CURRENT_USER deyiminin karşılığıdır.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::currentUser()->get('test');

output($query->value());
output($query->stringQuery());
root@localhost
SELECT CURRENT_USER() FROM test   

 

 

# SessionUser


SQL SESSION_USER deyiminin karşılığıdır.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::sessionUser()->get('test');

output($query->value());
output($query->stringQuery());
root@localhost
SELECT SESSION_USER() FROM test   

 

 

# SystemUser


SQL SYSTEM_USER deyiminin karşılığıdır.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::systemUser()->get('test');

output($query->value());
output($query->stringQuery());
root@localhost
SELECT SYSTEM_USER() FROM test  

 

 

# ConnectionID


SQL CONNECTION_ID deyiminin karşılığıdır. Bağlantı ID değerini döndürür.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::connectionId()->get('test');

output($query->value());
output($query->stringQuery());
155
SELECT CONNECTION_ID() FROM test  

 

 

# Database


SQL DATABASE deyiminin karşılığıdır. Veritabanı adını döndürür.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::database()->get('test');

output($query->value());
output($query->stringQuery());
test
SELECT DATABASE() FROM test  

 

 

# Schema


SQL SCHEMA deyiminin karşılığıdır. Şema adını döndürür.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::schema()->get('test');

output($query->value());
output($query->stringQuery());
test
SELECT SCHEMA() FROM test  

 

 

# LastInsertID


SQL LAST_INSERT_ID deyiminin karşılığıdır. Otomatik artan id değerine göre son eklenen id bilgisini verir.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::lastInsertId()->get('test');

output($query->value());
output($query->stringQuery());
0
SELECT LAST_INSERT_ID() FROM test  

 

 

# RowCount


SQL ROW_COUNT deyiminin karşılığıdır. Güncellenen satır sayısın değerini döndürür.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::rowCount()->get('test');

output($query->value());
output($query->stringQuery());
0
SELECT ROW_COUNT() FROM test  

 

 

# VersionInfo


SQL VERSION deyiminin karşılığıdır. Mevcut versiyon bilgisini verir.

Parametreler

string ...$args Sıralı parametrik değerler.
return mixed

Kullanımlar

$query = DB::versionInfo()->get('test');

output($query->value());
output($query->stringQuery());
10.1.13-MariaDB
SELECT VERSION() FROM test