【发布时间】:2016-03-22 05:12:45
【问题描述】:
CI Active Record 能防止 SQL 注入吗?
这是我的代码
$this->db->select('t.DateTime,
su.FirstName,
su.MiddleName,
su.LastName,
l.Description,
t.Temperature,
t.UnitID,
t.Humidity');
$this->db->from('temperaturelogs as t');
$this->db->join('systemusers as su', 'su.UserID = t.Encoder');
$this->db->join('locations as l', 't.LocationID = l.LocationID');
$this->db->where("Cast(t.DateTime as date) >= '$start_date'");
$this->db->where("Cast(t.DateTime as date) <= '$end_date'");
$query = $this->db->get();
if ($query->num_rows() > 0)
{
return $query->result_array();
}
当我尝试在End Date 中输入此输入时。
我的意见:
'; Truncate Table systemusers; #
给我这个错误:
您的 SQL 语法有错误;检查手册 对应于您的 MariaDB 服务器版本,以便使用正确的语法 near '截断表系统用户; #'' 在第 6 行
选择
t.DateTime,su.FirstName,su.MiddleName,su.LastName,l.Description,t.Temperature,t.UnitID,t.HumidityFROMtemperaturelogsastJOINsystemusersassuONsu.UserID=t.EncoderJOINlocationsaslONt.LocationID=l.LocationIDWHERE Cast(t.DateTime 作为日期) >= '2016-03-21' AND Cast(t.DateTime 作为日期)
该错误与我的问题没有任何关系...
【问题讨论】:
-
你使用的是哪个 CI 版本
echo CI_VERSION;? -
@Viral 我正在使用最新版本。
标签: php mysql codeigniter