繁体   English   中英

CodeIgniter从数据库中获取数据

[英]CodeIgniter fetching data from database

嘿,我是Codeigniter的新手。 我在从数据库中获取数据时遇到问题,这是我的getOne函数

public function getOne($sku){

    $ans = 0;
    $query = $this->db->query('SELECT * FROM barcode_sku WHERE sku = "$sku"');
    $res = $query->result();
    $row = $res[0];
    $ans =  $row->quantity;


    return $ans;
}

变量$ sku将具有bc_001或bc_002之类的值。...问题是,如果我在查询中硬编码该值(即bc_001),它将正确获取结果,但是当我在查询中使用变量$ sku时,它将不起作用。 请帮忙。

因为您使用单引号使查询语句变形,所以php不会在查询中添加变量,而是使用双引号来允许php解释$ sku变量。

 $query = $this->db->query("SELECT * FROM barcode_sku WHERE sku = \"$sku\"");

同样不要忘记转义$ sky变量以避免SQL注入。

更好的解决方案是使用codeigniter活动记录。

http://www.codeigniter.com/userguide2/database/active_record.html

可能您可以像这样修改查询:

public function getOne($sku){

    $ans = 0;
    $sql= 'SELECT * FROM barcode_sku WHERE sku = ?';
    $query = $this->db->query($sql, array($sku));
    $res = $query->result();
    $row = $res[0];
    $ans =  $row->quantity;


    return $ans;
}

请尝试这个-

public function getOne($sku)
{
    $this->db->select('*');
    $this->db->from('barcode_sku');
    $this->db->like('sku ', $sku,'after');
    $query = $this->db->get();
    return $query->result_array();
}

它将返回一个数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM