2017-10-20 56 views
0

我在phpmyadmin中運行此查詢,它工作正常。但在joshcam's MySQLi Database類運行它,它得到錯誤的數據
查詢:MySQLi加入使用日期(now())在條款

SELECT 
    s.az 
    , s.ta 
    , s.zamanSarfShode 
    , p.name 
FROM 
    saateruzane s 
JOIN 
    projhe p 
JOIN 
    kareruzane k 
WHERE 
    s.ProjheId = p.id 
AND 
    k.id = s.ruzId 
AND 
    k.ruzGregorian = date(now()) 

PHP代碼:

$con->join('projhe p', 's.ProjheId = p.id'); 
$con->join('kareruzane k', 'k.id = s.ruzId'); 
$con->joinWhere('kareruzane k','k.ruzGregorian', 'date(now())'); 
$tines = $con->get('saateruzane s',null,'s.az ,s.ta ,s.zamanSarfShode ,p.name'); 
+0

你可能不能傳遞''date(now())''那樣,因爲它可能會試圖引用它。嘗試傳遞'date('Y-m-d')',而不用引用它。 – aynber

回答

2

定義爲joinWhere

public function joinWhere($whereJoin, $whereProp, $whereValue = 'DBNULL', $operator = '=', $cond = 'AND') 

所以你不需要在每一個部分通過。相反,試試這個:

$con->joinWhere('kareruzane k','k.ruzGregorian = date(now())'); 

雖然比date(now())更好的是CURDATE()

$con->joinWhere('kareruzane k','k.ruzGregorian = curdate()'); 

但是,我不知道,你應該在這裏使用一個連接,因爲它的原件上的WHERE子句的一部分查詢,而不是JOIN子句。所以反而做

$con->where('k.ruzGregorian = curdate()'); 
0

隨着這個LIB文件只是一個快看,我發現這一點:

'createdAt' => $db->now(), 
// createdAt = NOW() 

https://github.com/joshcam/PHP-MySQLi-Database-Class#insert-query

在你的情況下,嘗試使用

$con->joinWhere('kareruzane k','k.ruzGregorian', $con->now()); 
+0

這將與日期時間字符串進行比較,而不是OP想要的日期字符串。 – aynber