首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP搜索查询不起作用

问PHP搜索查询不起作用
EN

Stack Overflow用户
提问于 2014-03-04 11:27:57
回答 1查看 631关注 0票数 1

我试图在我的网站上进行搜索,但出于某种原因,我的SELECT查询在执行时正在交换列名的关键字和名称。下面是我的查询代码:

代码语言:javascript
复制
if(empty($_POST)=== false){
    $output = '';
    $error = '';
    $input = $_POST['search_input'];
    $i=0;
    if($input){
        $keyword = explode(" ", $input);
        require ('core/dbconnection.php');
        //If a user is logged in check if the user is Admin or Customer. 
        if(isset($_SESSION['userid'])){ 
            if($admin == 1){
                //enter admin code here
            }
        }else{
            //If user is not logged in search items table only.
            $search_items = "SELECT * FROM fyp_items WHERE ";
            foreach($keyword as $k){
                $i++;
                if($i == 1){
                    $search_items .= "name LIKE $k OR description LIKE $k";
                }else
                    $search_items .= " OR name LIKE $k OR description LIKE $k";
            }
            $item_qry = mysql_query($search_items)or die(mysql_error());

        }
    }else
        $error = '<p class="pageerror">Please enter your search terms.</p>';

$search_items将搜索查询连接起来,然后由$item_query执行。

因此,我搜索了"conwerse“并回显出了$search_items变量,得到了以下信息:http://awesomescreenshot.com/0302ft5mc3

但是,当我运行查询时,我得到了这个mysql_error.http://awesomescreenshot.com/0552ft6bb4

在我运行查询时,它似乎交换了关键字和列名。我的数据库表是InnoDB>类型的,非常感谢您的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-04 11:31:17

首先,不要使用mysql_query,因为所有的mysql_函数都被废弃了。使用mysqli或pdo。

第二,用mysql_escape_string();转义关键字,如

代码语言:javascript
复制
$k = mysql_real_escape_string($k);

第三,当您响应查询时,需要如下所示:

代码语言:javascript
复制
SELECT * FROM fyp_items WHERE `name` LIKE 'conwerse' OR `description` LIKE 'conwerse';

还有更多,但这应该会让你开始。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22170695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档