这是我在这里的第一个问题,我希望它很简单,可以快速得到答案!
基本上,我有以下代码:
$variable = curPageURL();
$query = 'SELECT * FROM `tablename` WHERE `columnname` LIKE '$variable' ;
如果我回显$ variable,它将打印当前页面的url(这是我页面上的javascript)
最终,我想要的是能够进行搜索,搜索条件是当前页面的url,前后带有通配符。我不确定这是否可能,或者我只是语法错误,因为我没有错误,只是没有结果!
我试过了 :
$query = 'SELECT * FROM `tablename` WHERE `columnname` LIKE '"echo $variable" ' ;
但同样,我可能丢失了或使用了错误的’“;等。
请告诉我我做错了!
最终,我想要的是能够进行搜索,搜索条件是当前页面的url,前后带有通配符。
SQL通配符是百分号。所以:
$variable = curPageURL();
$variable = mysql_real_escape_string($variable);
$query = "SELECT * FROM `tablename` WHERE `columnname` LIKE '%{$variable}%'";
注意:我添加了一些额外的代码。mysql_real_escape_string()
将保护您免受用户有意或无意间放置会破坏您的SQL语句的字符的侵害。您最好使用参数化查询,但这是比此简单修复更复杂的话题。
另请注意:我也修复了您的字符串引用。如果该字符串用双引号引起来,并且您在末尾缺少引号,则只能直接在该字符串中使用变量$query
。
2015年1月17日编辑: 刚刚投票,因此, 请 记住不要使用这些mysql_*
功能。
在 Transact-SQL 中,LIKE 运算符用于搜索带有 WHERE 子句的列中指定的模式。Transact-SQL 中的 LIKE 子句用于比较相同的值以使用通配符运算符。 两个通配符与 LIKE 运算符结合使用: - 百分号代表零、一个或一些字符。 - 下划线符号代表单个字符。 注意:MS Access 使用星号 () 代替百分号 () 和问号 (?) 而不是下划线 ()。 百分号代表
Like 运算符示例 此示例返回员工名字以字母 A 到 D 开始的员工列表。 此示例调用过程 EnumFields 过程,且可以在 SELECT 语句示例中找到该过程。 Sub LikeX() Dim dbs As Database, rst As Recordset ' 在您的计算机中修改此行使其正确指到 Northwind 的路径。 Set dbs = OpenDatabase("Northw
Like 运算符 比较字符串表达式和 SQL 表达式中的模式。 语法 expression Like "pattern" 运算符 Like 的语法包含下列部分: 部分 说明 expression 用于 WHERE 子句的 SQL 表达式 Pattern 表达式与之比较的字符串或字符串文本。 说明 可用 Like 运算符来找出符合指定样式的字段值。对于 pattern,可以指定完整的值(例如,Lik
问题内容: 我想用Hibernate实现一些通用过滤器。它应该像来自SQL的运算符一样工作: 我在哪里 key 是列名, value 是它的值。 我尝试过这样的事情: 但是,当字段类型不是 String时 ,它将导致 : 有办法解决吗? 问题答案: 在这种情况下,我建议使用而不是。 我不记得Criteria是否像Query对象一样将无法理解的事情传递给数据库。基本上,这意味着如果您使用的功能是Hi
问题内容: 有人可以告诉我,这为什么不起作用: 我收到以下错误: 为了可以使用运算符,将模型的属性更改为字符串的唯一解决方案是吗? BR 问题答案: JPA不支持Integers的like(),仅支持字符串。一些数据库确实支持整数,而其他则不支持。 EclipseLink应该允许将like()与Integer一起使用(前提是您的数据库支持它)。您使用什么版本?可能需要使用> = 2.1。如果无法在
问题内容: 我想获取满足一定条件的组数。用SQL术语来说,我想在Elasticsearch中执行以下操作。 到目前为止,我可以通过术语聚合将senderResellerId分组。但是,当我应用过滤器时,它无法按预期工作。 弹性请求 实际反应 从上面的响应中可以看到,它正在返回代理商,但是 reseller_sale 聚合结果为零。 更多细节在这里。 问题答案: 实现类似HAVING的行为 您可以使