【发布时间】:2018-12-12 15:21:03
【问题描述】:
我正在尝试了解实现新功能和选项的脚本。 为了在 sql 表中搜索,他们使用了以下语法
$sqlquery = "SELECT DISTINCT \"Name\", \"FileName\", \"Status\", lower(\"Name\") FROM \"" . $SearchedTable . "\" WHERE ";
$sqlquery=$sqlquery." (\"Name\" ~* '".$text[$i]."' OR \"DNA\" ~* '".$text[$i]."')";
- 我想知道的是他们为什么使用“名称”(我在某处读到它与 sql 注入有关)。
- 我也找不到使用这种语法 ~* 代替 = 的原因。还是有别的意思?
【问题讨论】:
-
您确定这是
mysql而不是postgres?~在 mysql 中用作位运算符以及全文搜索中的否定运算符。这些似乎都没有在这里发挥作用。在 postgresql 中,~是一个正则表达式运算符,在这种情况下更有意义。 -
谢谢,我改编了。我不想给出完整的查询。我不会很清楚。
-
这是 Postgresql 而不是 mysql。搜索模式匹配运算符。
-
如果您想避免 sql 注入,请阅读有关PDO的教程
标签: php sql postgresql