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方法,我删除了这个词。但这似乎不是一个解决方案。你能在这里发布解决这个问题的代码吗?