2011-01-20 69 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