问题描述
我正在使用以下PHP函数来过滤MySQL表:
I am using following PHP function to filter a MySQL table:
public function buscarModelos($searchWord)
{
$returnValue = array();
$sql = "select * from tb_modelos where 1";
if(!empty($searchWord))
{
$sql .= " and ( agencia_modelo LIKE ? )";
$sql .= " ORDER BY nombre_modelo";
}
$statement = $this->conn->prepare($sql);
if (!$statement)
throw new Exception($statement->error);
if(!empty($searchWord))
{
$searchWord = '%' ;
$statement->bind_param("s", $searchWord );
}
$statement->execute();
$result = $statement->get_result();
while ($myrow = $result->fetch_assoc())
{
$returnValue[] = $myrow;
}
return $returnValue;
}
我需要过滤$ searchWord,在这种情况下为$ searchWord = TOU656.
I need to filter for $searchWord, in this case $searchWord = TOU656.
我的问题是查询没有按照我的要求进行过滤.
My issue is that the query is not filtering as I want.
如您所见,有一行(#34)的TOU658作为键agencia_modelo的值
As you can see, there is a row (#34) that has TOU658 as value for key agencia_modelo
我正在从iOS应用中调用PHP函数,我只想获取以TOU656作为键agencia_model的值的行,但是从过滤器结果中也收到了第34行.
I am calling the PHP function from a iOS app and I only want to get the rows that have TOU656 as value for key agencia_model, but row #34 is also received as part from the filter result.
编辑
string(87)从tb_modelos中选择*,其中1和(agencia_modelo喜欢吗?)ORDER BY nombre_modelo" string(1)%" {"friends":[{"id_modelo":34,"nombre_modelo":"CHRYSLER 200," agencia_modelo:" TOU658},{" id_modelo:2," nombre_modelo:" CHRYSLER 300," agencia_modelo:" TOU656},{" id_modelo:7," nombre_modelo:" CHRYSLER NEON," agencia_modelo:" TOU656},{" id_modelo:16," nombre_modelo:" CHRYSLER PACIFICA," agencia_modelo:" TOU656},{" id_modelo:15," nombre_modelo:" CHRYSLER TOWN& COUNTRY," agencia_modelo:" TOU656},{" id_modelo:6," nombre_modelo:" CHRYSLER VISION," agencia_modelo:" TOU656},{" id_modelo:4," nombre_modelo":"DODGE ATOS","agencia_modelo":"TOU656"},{"id_modelo":5,"nombre_modelo":"DODGE ATTITUDE","agencia_modelo":"TOU656"},{"id_modelo":32,"nombre_modelo" :"DODGE AVENGER","agencia_modelo":"TOU656"},{"id_modelo":13,"nombre_modelo":"DODGE DURANGO","agencia_modelo":"TOU656"},{"id_modelo":14,"nombre_modelo" :"DODGE GRAND CARAVAN","agencia_modelo":"TOU656"},{"id_modelo":8,"nombre_modelo" :"DODGE JOURNEY","agencia_modelo":"TOU656"},{"id_modelo":25,"nombre_modelo":"FIAT 500","agencia_modelo":"TOU656"},{"id_modelo":26,"nombre_modelo" :"FIAT 500 L","agencia_modelo":"TOU656"},{"id_modelo":27,"nombre_modelo":"FIAT 500 X","agencia_modelo":"TOU656"},{"id_modelo":29,"nombre_modelo:" FIAT DUCATO," agencia_modelo:" TOU656},{" id_modelo:21," nombre_modelo:" FIAT MOBI," agencia_modelo:" TOU656},{" id_modelo:23," nombre_modelo:" FIAT PALIO," agencia_modelo:" TOU656},{" id_modelo:24," nombre_modelo:" FIAT PALIO ADVENTURE," agencia_modelo:" TOU656},{" id_modelo:22, "nombre_modelo":"FIAT UNO","agencia_modelo":"TOU656"},{"id_modelo":11,"nombre_modelo":"JEEP CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":10, "nombre_modelo":"JEEP COMPASS","agencia_modelo":"TOU656"},{"id_modelo":12,"nombre_modelo":"JEEP GRAND CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":9 ,"nombre_modelo":"JEEP PATRIOT","agencia_modelo":"TOU656"},{"id_modelo":31,"nombre_modelo":"JEEP RENEGADE","agencia_modelo":"TOU65 6},{" id_modelo:30," nombre_modelo:"吉普牧马人," agencia_modelo:" TOU656},{" id_modelo:18," nombre_modelo:" RAM 700," agencia_modelo:" TOU656},{" id_modelo:17," nombre_modelo:" RAM PICKUP," agencia_modelo:" TOU656},{" id_modelo:19," nombre_modelo:" RAM PROMASTER," agencia_modelo:" TOU656},{" id_modelo:20," nombre_modelo:" RAM PROMASTER RAPID," agencia_modelo:" TOU656}]}}
string(87) "select * from tb_modelos where 1 and ( agencia_modelo LIKE ? ) ORDER BY nombre_modelo" string(1) "%" {"friends":[{"id_modelo":34,"nombre_modelo":"CHRYSLER 200","agencia_modelo":"TOU658"},{"id_modelo":2,"nombre_modelo":"CHRYSLER 300","agencia_modelo":"TOU656"},{"id_modelo":7,"nombre_modelo":"CHRYSLER NEON","agencia_modelo":"TOU656"},{"id_modelo":16,"nombre_modelo":"CHRYSLER PACIFICA","agencia_modelo":"TOU656"},{"id_modelo":15,"nombre_modelo":"CHRYSLER TOWN & COUNTRY","agencia_modelo":"TOU656"},{"id_modelo":6,"nombre_modelo":"CHRYSLER VISION","agencia_modelo":"TOU656"},{"id_modelo":4,"nombre_modelo":"DODGE ATOS","agencia_modelo":"TOU656"},{"id_modelo":5,"nombre_modelo":"DODGE ATTITUDE","agencia_modelo":"TOU656"},{"id_modelo":32,"nombre_modelo":"DODGE AVENGER","agencia_modelo":"TOU656"},{"id_modelo":13,"nombre_modelo":"DODGE DURANGO","agencia_modelo":"TOU656"},{"id_modelo":14,"nombre_modelo":"DODGE GRAND CARAVAN","agencia_modelo":"TOU656"},{"id_modelo":8,"nombre_modelo":"DODGE JOURNEY","agencia_modelo":"TOU656"},{"id_modelo":25,"nombre_modelo":"FIAT 500","agencia_modelo":"TOU656"},{"id_modelo":26,"nombre_modelo":"FIAT 500 L","agencia_modelo":"TOU656"},{"id_modelo":27,"nombre_modelo":"FIAT 500 X","agencia_modelo":"TOU656"},{"id_modelo":29,"nombre_modelo":"FIAT DUCATO","agencia_modelo":"TOU656"},{"id_modelo":21,"nombre_modelo":"FIAT MOBI","agencia_modelo":"TOU656"},{"id_modelo":23,"nombre_modelo":"FIAT PALIO","agencia_modelo":"TOU656"},{"id_modelo":24,"nombre_modelo":"FIAT PALIO ADVENTURE","agencia_modelo":"TOU656"},{"id_modelo":22,"nombre_modelo":"FIAT UNO","agencia_modelo":"TOU656"},{"id_modelo":11,"nombre_modelo":"JEEP CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":10,"nombre_modelo":"JEEP COMPASS","agencia_modelo":"TOU656"},{"id_modelo":12,"nombre_modelo":"JEEP GRAND CHEROKEE","agencia_modelo":"TOU656"},{"id_modelo":9,"nombre_modelo":"JEEP PATRIOT","agencia_modelo":"TOU656"},{"id_modelo":31,"nombre_modelo":"JEEP RENEGADE","agencia_modelo":"TOU656"},{"id_modelo":30,"nombre_modelo":"JEEP WRANGLER","agencia_modelo":"TOU656"},{"id_modelo":18,"nombre_modelo":"RAM 700","agencia_modelo":"TOU656"},{"id_modelo":17,"nombre_modelo":"RAM PICKUP","agencia_modelo":"TOU656"},{"id_modelo":19,"nombre_modelo":"RAM PROMASTER","agencia_modelo":"TOU656"},{"id_modelo":20,"nombre_modelo":"RAM PROMASTER RAPID","agencia_modelo":"TOU656"}]}
推荐答案
如果参数$searchWord
不为空,请设置值'%'
?
If argument $searchWord
is not empty, set value '%'
?
如果为agencia_modelo LIKE '%'
,则查询结果未按列agencia_modelo
进行过滤.
If agencia_modelo LIKE '%'
, query result is not filtering by column agencia_modelo
.
if(!empty($searchWord))
{
$searchWord = '%' ; // <--- Here
$statement->bind_param("s", $searchWord );
}
这篇关于PHP函数中的奇怪过滤器结果的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!