一尘不染

像$ variable这样的LIKE运算子

sql

这是我在这里的第一个问题,我希望它很简单,可以快速得到答案!

基本上,我有以下代码:

$variable = curPageURL();
$query = 'SELECT * FROM `tablename` WHERE `columnname` LIKE '$variable' ;

如果我回显$ variable,它将打印当前页面的url(这是我页面上的javascript)

最终,我想要的是能够进行搜索,搜索条件是当前页面的url,前后带有通配符。我不确定这是否可能,或者我只是语法错误,因为我没有错误,只是没有结果!

我试过了 :

    $query = 'SELECT * FROM `tablename` WHERE `columnname` LIKE '"echo $variable" ' ;

但同样,我可能丢失了或使用了错误的’“;等。

请告诉我我做错了!


阅读 127

收藏
2021-03-10

共1个答案

一尘不染

最终,我想要的是能够进行搜索,搜索条件是当前页面的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_*功能。

2021-03-10