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一个数组..
嘿,我是 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一个数组..