Php 如何在普通sql查询中设置限制

Php 如何在普通sql查询中设置限制,php,mysql,sql,codeigniter,Php,Mysql,Sql,Codeigniter,我想把这个限制在10以内 function getArticles($search_key,$pub_status) { $sql="SELECT * FROM (`ms_article`) "; if($search_key != '') { $sql.="WHERE ("; $words = explode(" ",$search_key); for($i=0;$i<count($w

我想把这个限制在10以内

function 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;  
}
函数getArticles($search\u key,$pub\u status)
{ 
$sql=“SELECT*FROM(`ms_article`)”;
如果($search_key!='')
{
$sql.=“其中(”;
$words=explode(“,$search\u key);
对于($i=0;$idb->query($sql);
//回声[$result];
//返回$result;
}
但我不知道这个问题的答案。
我可以将其放置在何处以及如何在codeigniter中回显查询?

在查询结束时追加
限制
,然后
回显它:

$sql.=")";
$sql.=" LIMIT 10";// added limit at last of query
echo $sql; //printing generated query
$result=$this->db->query($sql) ;

在查询结束时追加
Limit
,然后
echo
it:

$sql.=")";
$sql.=" LIMIT 10";// added limit at last of query
echo $sql; //printing generated query
$result=$this->db->query($sql) ;

直接从文档中提取:


但这也取决于您使用的数据库。LIMIT语法适用于PostgreSQL、MySQL、SQLite,但适用于sqlserver(Microsoft)。这是一个完全不同的故事

直接从文档中得出:


但这也取决于您使用的数据库。LIMIT语法适用于PostgreSQL、MySQL、SQLite,但sqlserver(Microsoft)则完全不同。试试这段代码可能对您有用

$sql.=")";
$sql.=" LIMIT 0,10";
echo $sql;
$result=$this->db->query($sql) ;

试试这段代码也许对你有用

$sql.=")";
$sql.=" LIMIT 0,10";
echo $sql;
$result=$this->db->query($sql) ;

您可以在查询末尾添加限制,如下所示:

$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>');
}
函数q($die=true){
$ci=&get_instance();
echo$ci->db->last_query();
if($die)die('
--Query结束于此-----
'); }
您可以在查询末尾添加限制,如下所示:

$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>');
}
函数q($die=true){
$ci=&get_instance();
echo$ci->db->last_query();
if($die)die('
--Query结束于此-----
'); }