查询在phpmyadmin中工作,但在PHP中不起作用

时间:2014-09-06 12:46:08

标签: php mysql codeigniter phpmyadmin

好的,我有这种查询

SELECT * FROM table WHERE column LIKE 'Blahblahblah Blah - Blah (Blah-Blah)'

(是的,列值长度为20-30个字符) 它在phpmyadmin中工作并返回~100个结果。 但是我在PHP框架CI(CodeIgniter)中尝试它 它没有返回任何值。 我的代码如下:

$sql = "SELECT * FROM table WHERE column LIKE '$val' ORDER BY column ASC";
$sql = $this->db->query($sql);
return $sql->result();

那么我该如何让它发挥作用呢?

1 个答案:

答案 0 :(得分:0)

在尝试使其工作之前,您确实需要改变构建查询的方式。您应该使用准备好的语句来引入变量,然后将它们绑定到值。

您编写它的方式非常容易受到SQL注入攻击。 (假设$val包含'; DROP DATABASE blah; ...。现在整个SQL语句会是什么样子?)如果你尝试以当前形式解决问题,你最终会得到一些有效的东西,但会非常危险的。首先使用准备好的声明使其安全。

this linked question中的详细信息。