1
$query="SELECT * FROM tablename where fieldname='".$folders['name']."'";

上面的行是我的查询,其中 Where 子句中的字段包含数据之间的空格。如何删除该文件中存在的空格..例如在 where 子句中使用修剪或替换

4

1 回答 1

1

如果要删除数据中存在的所有空格,则可以Replace()使用空字符,例如

$var = $folders['name'];
$query = "SELECT * FROM tablename where REPLACE(fieldname, ' ','') = '$var'";

但请记住,它可以杀死索引,因此查询将执行全表扫描,从而导致大型数据库速度变慢。


作为旁注,SQL Injection如果变量的值(s)来自外部,则查询很容易受到攻击。请看下面的文章,了解如何预防。通过使用PreparedStatements,您可以摆脱在值周围使用单引号。

于 2013-03-23T06:11:10.410 回答