2011-01-20 70 views
3

我有這個MYSQL,WHERE/LIMIT的組合/ ORDERBY

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW())'; 
    $result = $conn->query($sql) or die(mysqli_error()); 
    $news = $result->fetch_assoc(); 

其運行正常 但是當我將其更改爲這個

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW() LIMIT 2)'; 

我收到此錯誤信息

Warning: mysqli_error() expects exactly 1 parameter, 0 given in /var/www/.../...php 

最後我想結合 這個就是這樣的

$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW() LIMIT 2 ORDER BY DESC)'; 

我做錯了什麼?

回答

3

您需要從DATE()宏中拉出limit子句。

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2 

此外,如果你想命令你必須設置一個領域,像

SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) LIMIT 2 ORDER BY myField DESC 
2
$sql = 'SELECT * FROM tb_event WHERE DATE(edate) >= DATE(NOW()) ORDER BY edate DESC LIMIT 2'; 

請注意,您獲得實際的錯誤是在你是如何在錯誤處理代碼中調用mysqli_error。解決這個問題。

+0

+1因爲錯誤的真正起源 – EaterOfCode 2012-08-06 14:01:39