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();
}

它将return一个数组..