Ans*_*Kao 7 php mysql casting codeigniter
我在调试CodeIgniter活动记录时发现了这个问题,如下所示:
$this->db->from("table_name");
$this->db->where("field_name", "");
$result = $this->db->get()->result_array();
Run Code Online (Sandbox Code Playgroud)
生成的查询是:
SELECT * FROM `table_name` WHERE `field_name` = 0; // Returns all rows in table
Run Code Online (Sandbox Code Playgroud)
即使空字符串被强制转换为0,我们也期望得到一个空的结果table_name.field_name充满了非空字符串值.但是,我从此查询中获取整个表.谁知道为什么?这根本不直观.
我尝试了没有强制转换为0的查询,它的工作原理如下:
SELECT * FROM `table_name` WHERE `field_name` = ""; // Empty result
Run Code Online (Sandbox Code Playgroud)
为什么演员阵容为0?
编辑:使用此替代CodeIgniter语法进行相同的强制转换:
$this->db->query('SELECT * FROM table_name WHERE field_name = ?', array(""));
Run Code Online (Sandbox Code Playgroud)
如果您正在使用,请尝试使用以下内容codeigniter:
$this->db->where("field_name = ''");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2275 次 |
| 最近记录: |