我想在此
中加上限制10function getArticles($search_key,$pub_status)
{
$sql="SELECT * FROM (`ms_article`) ";
if($search_key != '')
{
$sql.="WHERE (";
$words = explode(" ",$search_key);
for($i=0;$i<count($words);$i++)
{
$title_con.="`article_title` LIKE '%".$words[$i]."%' OR";
$abstract_con.="`article_abstract` LIKE '%".$words[$i]."%' OR";
$keywords_con.="`article_keywords` LIKE '%".$words[$i]."%' OR";
}
$sql.=$title_con.$abstract_con.substr($keywords_con, 0, -2).") AND (`article_status` = 1 ";
} else{
$sql.="WHERE (`article_status` = 1 ";
}
if($pub_status==0){
$sql.="AND `private_status` <> 1";
}
$sql.=")";
$result=$this->db->query($sql) ;
// echo[$result];
// return $result;
}
但我不知道该查询中的限制追加。 我在哪里可以放置它以及如何在codeigniter中回显查询?
答案 0 :(得分:8)
在查询结尾追加Limit
,然后echo
:
$sql.=")";
$sql.=" LIMIT 10";// added limit at last of query
echo $sql; //printing generated query
$result=$this->db->query($sql) ;
答案 1 :(得分:2)
尝试此代码可能对您有用。
$sql.=")";
$sql.=" LIMIT 0,10";
echo $sql;
$result=$this->db->query($sql) ;
答案 2 :(得分:1)
直接从文档:http://www.codeigniter.com/user_guide/database/examples.html#standard-query-with-single-result
中拉出来但这也取决于您使用的数据库。 LIMIT语法适用于PostgreSQL,MySQL,SQLite,但sqlserver(微软)这是一个完全不同的故事
答案 3 :(得分:1)
您可以在查询末尾添加限制,如下所示:
$sql.=")";
$sql.=" LIMIT 10, 0"; // added limit of 10 and offset 0
echo $sql; //printing generated query
$result=$this->db->query($sql) ;
在您的情况下,您只是将查询构建为字符串,以便您可以回显字符串以查看最终查询。
然而,在使用Codeigniter的查询生成器时,您可以使用以下命令检查上次执行的查询:
$this->db->last_query();
我通常将这些函数之王放在一个单独的帮助文件中,这对于稍后调试任何一段代码非常有用:
function q($die = true){
$ci =& get_instance();
echo $ci->db->last_query();
if($die) die('<br>----------Query Ends here--------<br>');
}