编程语言
首页 > 编程语言> > php – 具有$variable的LIKE运算符

php – 具有$variable的LIKE运算符

作者:互联网

这是我的第一个问题,我希望它很简单,快速回答!

基本上,我有以下代码:

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

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

最终,我想要的是能够搜索搜索术语是当前页面的URL,并使用前面和后面的通配符.我不确定这是否可行,或者我是否只是语法错误,因为我没有错误,根本没有结果!

我试过了 :

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

但同样,我可能会错过或使用错位的“;等等

请告诉我我做错了什么!

解决方法:

Ultimately, what I want, is to be able to make a search for which the search-term is the current page’s url, with wildcards before and after.

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日:刚刚得到一个upvote,所以考虑到这一点,请不要再使用mysql_ *函数.

标签:php,variables,sql,sql-like
来源: https://codeday.me/bug/20191001/1839691.html