SqL语句中的AND和OR不起作用

时间:2017-05-15 15:24:32

标签: php mysql sql

我正在尝试从数据库中检索一些信息,但我想我做错了什么,因为我只能检索一半未完整的信息。请让我知道我错在哪里

在下面的代码中有两个SQL语句(1)$ sql和2nd)$ result。我在 $ sql语句中遇到问题。

更新 - 问题已解决。以下是答案

                 BFP      BFP     BFP    DAP     DAP      DAP  
CTFP synthase  -0.4787 -0.3728 -0.7448 -1.3823 -0.9742 -0.8923
cathepsin       1.8874  1.5847  2.1324  2.3847  2.1883  1.9283
pusine          0.9348  0.8573  0.7376  0.9273  1.0283  1.0283
DPSH synthase  -0.9123 -0.8172  2.1234 -0.2736 -0.9273 -0.3726

2 个答案:

答案 0 :(得分:0)

我认为您需要这样的基础SQL查询:

select * from lemontable
    where store_id=1192 and (
       description like '%TOY%' or
       title like '%TOY%'
    )

这将返回给定商店中标题或描述中包含单词toy的任何记录。

但是,您应该使用参数化查询以更安全的方式重写此代码,而不是简单地稍微更改代码以更正此语法。您在此处显示的代码可能允许恶意用户操纵您的Web表单,以执行删除或更改数据,窃取隐私信息或阻止您的网站脱机的操作。简而言之:不好。

评论中有许多有用的链接,但this one in particular给出了一个应该作为一个良好起点的例子。

答案 1 :(得分:0)

请更改您的SQL查询,如下所示

$sql = "SELECT * FROM lemontable where `STORE_ID` = ".$search_id;
$sql .= " AND ( `DESCRIPTION` LIKE '%Toy%' OR `TITLE` LIKE '%TOY%' OR `Category` LIKE '%TOY%' ) ";

$result = "SELECT  STORE_LOGO, Lemon_COUNT FROM lemoncount where `STORE_ID` = ".$search_id;