tayfunerbilen / basicdb

PDO ile geliştirilmiş kullanımı kolay veritabanı sınıfıdır.
http://www.erbilen.net/
Creative Commons Zero v1.0 Universal
155 stars 78 forks source link

Where = fonksiyon , diyebilmek? #34

Open tolgaslan2 opened 4 years ago

tolgaslan2 commented 4 years ago
$arr = $db->from("availability")
    ->select("availability_title")
    ->where("availability_date1","current_date()")
    ->all();

Burda availability_date1 sütunu bugüne eşit olanları çekmek istiyorum . Fakat fonksiyon kullandığım için string olarak alıyor heralde.

where availability_date1='current_date()' şekline çeviriyor. where availability_date1=current_date() bu ise benim isteğim. Tekrar dökümanlara bakıcam ama bulamamıştım.

ghost commented 4 years ago

Aşağıdaki gibi kullanabilirsiniz. Daha fazla bilgi için bu bağlantıya gözatabilirsiniz. https://www.php.net/manual/tr/functions.anonymous.php

$arr = $db->from("availability") ->select("availability_title") ->where(function(){ return 'availability_date1';},current_date()) ->all();

tolgaslan2 commented 4 years ago

Dediğinizi denedim fakat olmadı, benim kullanmak istediğim fonksiyon bir mysql fonksiyonu, fakat siz php fonksiyonu gibi yazdırmışsınız orda. Teşekkürler yine de

ghost commented 4 years ago

Dediğinizi denedim fakat olmadı, benim kullanmak istediğim fonksiyon bir mysql fonksiyonu, fakat siz php fonksiyonu gibi yazdırmışsınız orda. Teşekkürler yine de

Şöyle yapmayı deneyebilirsiniz.

$arr = $db->from("availability") ->select("availability_title") ->where("availability_date1", $db->query('SELECT CURRENT_DATE()')->fetchColumn()) ->all();

Veritabanı sunucusunun tarih damgası yerine PHP'nin tarih damgasını kullanmayı düşünürseniz (ki daha hafif olur) aşağıdaki şekilde kullanmanız da mümkün.

$arr = $db->from("availability") ->select("availability_title") ->where("availability_date1", date('Y-m-d')) ->all();

tolgaslan2 commented 4 years ago

Dediğinizi denedim fakat olmadı, benim kullanmak istediğim fonksiyon bir mysql fonksiyonu, fakat siz php fonksiyonu gibi yazdırmışsınız orda. Teşekkürler yine de

Şöyle yapmayı deneyebilirsiniz.

$arr = $db->from("availability") ->select("availability_title") ->where("availability_date1", $db->query('SELECT CURRENT_DATE()')->fetchColumn()) ->all();

Veritabanı sunucusunun tarih damgası yerine PHP'nin tarih damgasını kullanmayı düşünürseniz (ki daha hafif olur) aşağıdaki şekilde kullanmanız da mümkün.

$arr = $db->from("availability") ->select("availability_title") ->where("availability_date1", date('Y-m-d')) ->all();

Farklı bi şekilde çözdüm. https://github.com/tayfunerbilen/basicdb/blob/84a22831a58c904cc849521334e23a33b1b4c163/src/BasicDB.php#L40

Kullanmak istediğimiz fonksiyonları buraya yazıyoruz sanırım. Teşekkürler

ghost commented 4 years ago

Dediğinizi denedim fakat olmadı, benim kullanmak istediğim fonksiyon bir mysql fonksiyonu, fakat siz php fonksiyonu gibi yazdırmışsınız orda. Teşekkürler yine de

Şöyle yapmayı deneyebilirsiniz.

$arr = $db->from("availability") ->select("availability_title") ->where("availability_date1", $db->query('SELECT CURRENT_DATE()')->fetchColumn()) ->all();

Veritabanı sunucusunun tarih damgası yerine PHP'nin tarih damgasını kullanmayı düşünürseniz (ki daha hafif olur) aşağıdaki şekilde kullanmanız da mümkün.

$arr = $db->from("availability") ->select("availability_title") ->where("availability_date1", date('Y-m-d')) ->all();

Farklı bi şekilde çözdüm. https://github.com/tayfunerbilen/basicdb/blob/84a22831a58c904cc849521334e23a33b1b4c163/src/BasicDB.php#L40

Kullanmak istediğimiz fonksiyonları buraya yazıyoruz sanırım. Teşekkürler

Rica ederim.