尝试动态编写搜索查询时出现语法错误

保罗·肯德尔

我正在尝试编写动态sql查询。该查询可以与整数一起使用。但是,一旦我尝试插入一个字符串,它就会失败。

以下是我的查询:

public function getList($params['SearchBy'])
{ 

    $select = "
        SELECT  
           u.id, u.firstName,u.lastName,u.city";

$from = "
        FROM
        user u";

$where =  "  
        WHERE
            u.live = 1    ";

    if(isset($params['SearchBy']))
    {             
        $where .= 'AND '. implode(' AND ', $params['SearchBy']);
    }

    $GroupBy = " 
        GROUP BY 
             u.id ";

$sql = $select.$from.$where.$GroupBy;   

}

对于searchby(),我从搜索查询中动态生成这些值;然后将它们放置在数组中:

$this->searchBy[$key][] = $key.' = '. $val;

当它是一个整数时,它可以完美地工作但是字符串需要有“”。我不确定是否要转义“”,以便它出现在查询中。IE

$this->searchBy[$topkey][] = $key.' = '. "$val";

我尝试这样做,但是没有用:

$this->searchBy[$topkey][] = $key.' = '. \"$val\";

将不胜感激关于如何摆脱它的任何建议。

谢谢你。

以下是从搜索中派生的原始sql查询;

SELECT  
        u.id,u.picNo,
                u.membershipType,
                u.firstName,u.lastName
            FROM
            user u  
        LEFT OUTER JOIN
                table_messages_between_members sm
        ON 
                u.id = sm.senderId
            LEFT OUTER JOIN
                list_photos_uploaded_by_members ph
        ON 
                u.id = ph.userId

            WHERE
                u.live = 1  AND u.membershipType = 1 AND u.city = London 
            GROUP BY 
                 u.id 
                ORDER BY
西蒂尔奇

简单的解决方案是

$this->searchBy[$topkey][] = $key.' = "'. $val .'"';

这种方法(特别是在允许最终用户写入/输入值的情况下可公开使用)可能会成为主要的安全威胁,因此您应 避免使用输入值或使用PDO(甚至更好)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

尝试运行 IF EXISTS 查询时出现语法错误

搜索尝试语法错误

尝试在创建表查询中创建外键约束时出现SQL语法错误1064

错误:尝试将 sql 查询的结果保存到 json 时,输入错误结束时出现语法错误

尝试选择INTO时出现“,'或附近的语法错误”

尝试创建类型时出现 Postgresql 语法错误

尝试使用归纳谓词时出现语法错误

尝试在 MySQL 中创建 CTE 时出现语法错误

尝试更新数值时出现语法错误(MySQL)

尝试SubURL时出现Django语法错误

OpenLDAP:尝试添加LDIF时出现无效的语法错误

尝试输入日期和时间时出现语法错误

为什么在尝试创建表时出现语法错误?

尝试在mysql中创建过程时出现语法错误

尝试检索主键时出现SQL语法错误

尝试从Arelle模块导入Cntlr时出现语法错误

尝试使用 postgres INSERT INTO 表时出现语法错误

尝试使用支付墙示例时出现语法错误

尝试在树莓派上运行 javascript 时出现语法错误

尝试插入多个索引时出现 iloc 语法错误

尝试插入多个索引时出现 iloc 语法错误

在 Javascript 中使用搜索时出现语法错误

在 sql 查询中使用 LIKE 时出现语法错误

在JS中调用SQL查询时出现语法错误

从PHP插入查询时出现MySQL语法错误

在mysql中选择查询时出现语法错误

Sql动态查询语法错误

尝试在sql中声明变量并使用if-else语句时出现语法错误。-“ VARCHAR”或附近的语法错误

我想在我编写的查询中将搜索文本对面的ID带入。尝试获取ID时出现“ NullPointerException”错误