Php 有没有办法从querystring中获取值[product_code]1并使用它运行sql查询

Php 有没有办法从querystring中获取值[product_code]1并使用它运行sql查询,php,mysql,sql,symfony,symfony4,Php,Mysql,Sql,Symfony,Symfony4,我试图从一个查询字符串中获取数据,该字符串如下所示: http://127.0.0.1:8000/product/controller/php?ids[]=[product_code]1INSAZE 如果我这样做: $ids = $request->query->get('ids', null); and dump it I get something like this : array:1 [▼ 0 => "[product_code]1INSAZE" ] ] 如果我

我试图从一个查询字符串中获取数据,该字符串如下所示:

http://127.0.0.1:8000/product/controller/php?ids[]=[product_code]1INSAZE
如果我这样做:

$ids = $request->query->get('ids', null);

and dump it I get something like this :

array:1 [▼ 0 => "[product_code]1INSAZE" ] ]
如果我
转储($ids[0])
我得到:

"[product_code]1INSAZE"
我需要该字符串才能执行此操作:

$ids = $ids[0];

$result = $this->createQueryBuilder('k')

->andWhere("k.product_code = $ids")

->getQuery()

->getResult();

return $result;
我得到这个错误:

[Syntax Error] line 0, col 72: Error: Expected Literal, got '['

是否与[产品代码]相关?如果是的话,我如何摆脱它并执行查询呢?

不要把变量放在引号里,这是不安全的,而且不是使用QueryBuilder的首选方法。使用参数

andWhere("k.product_code = :ids");
->setParameter('ids', $ids);
如果不起作用,请尝试用“\[”转义“[”


编辑:使用了错误的框架语法

您需要
[product\u code]1完整地保存
吗?是的,它需要在查询字符串中,但在运行代码时会出现语法错误。我解决了str\u replace()php方法的问题,删除了该词。这是因为您在值周围缺少引号,例如
->和where(“k.product_代码='$ids')
,但更好的办法是绑定这些参数,如@ursolsolsolutions.Rikudou\u Sennin所回答的,谢谢这是我的问题的解决方案预期文字,得到“\”你添加了参数吗?在尝试之前,省去“\”。对于查询字符串,你的意思是什么?是的,我给出了这个错误我解决了str\u replace()的问题php方法,我删除了这个词。但这似乎不是一个解决方案。你能在这里发布解决这个问题的代码吗?