像使用字母数字字符串 bindParam 的查询
Like query with alphanum string bindParam
我刚开始使用 pdo 语句,当我尝试在 phpMyadmin sql 控制台中设置这样的查询时,它工作正常:
SELECT name, number FROM client WHERE number LIKE '%30%'
结果:
|name|number|
|antonio|30857898H|
|andrés|30987454U|
但是当我使用方法 bindParam()
或方法 bindValue()
或类型值如 PDO::PARAM_STR
或 PDO::PARAM_INT
传递参数时,行为是查询停止在第一个数字,不获取其他字符。列都是 'char'...
这是我的方法:
function getQueryData($key,$i_query){
require_once '../queryList.php';//get all the querys
//$key is an array like this $key[0][0] = ':number', $key[0][1] = '%30%'
$this->consulta = $this->conInstance->prepare($gQuery[$i_query]);
foreach ($key as $clave => $valor) {
$this->consulta->bindParam($key[$clave][0], $key[$clave][1]);
}
$this->consulta->execute();
$this->consulta->setFetchMode(PDO::FETCH_ASSOC);
return $this->consulta;
//Make the bucle on the system
}
非常感谢这个社区的帮助,这里的人都很棒
尝试将 like 匹配子句中的参数内容隔离为
SELECT name, number FROM client WHERE number LIKE concat('%', '30', '%')
例如
SELECT name, number FROM client WHERE number LIKE concat('%', :your_param , '%')
或同等学历
使用绑定参数,您需要使用“%”传递整个字符串
查询:
SELECT name, number FROM client WHERE number LIKE :your_param
代码:
$value = 'some value';
$this->consulta->bindParam('your_param', '%'. $value . '%');
我刚开始使用 pdo 语句,当我尝试在 phpMyadmin sql 控制台中设置这样的查询时,它工作正常:
SELECT name, number FROM client WHERE number LIKE '%30%'
结果:
|name|number|
|antonio|30857898H|
|andrés|30987454U|
但是当我使用方法 bindParam()
或方法 bindValue()
或类型值如 PDO::PARAM_STR
或 PDO::PARAM_INT
传递参数时,行为是查询停止在第一个数字,不获取其他字符。列都是 'char'...
这是我的方法:
function getQueryData($key,$i_query){
require_once '../queryList.php';//get all the querys
//$key is an array like this $key[0][0] = ':number', $key[0][1] = '%30%'
$this->consulta = $this->conInstance->prepare($gQuery[$i_query]);
foreach ($key as $clave => $valor) {
$this->consulta->bindParam($key[$clave][0], $key[$clave][1]);
}
$this->consulta->execute();
$this->consulta->setFetchMode(PDO::FETCH_ASSOC);
return $this->consulta;
//Make the bucle on the system
}
非常感谢这个社区的帮助,这里的人都很棒
尝试将 like 匹配子句中的参数内容隔离为
SELECT name, number FROM client WHERE number LIKE concat('%', '30', '%')
例如
SELECT name, number FROM client WHERE number LIKE concat('%', :your_param , '%')
或同等学历
使用绑定参数,您需要使用“%”传递整个字符串
查询:
SELECT name, number FROM client WHERE number LIKE :your_param
代码:
$value = 'some value';
$this->consulta->bindParam('your_param', '%'. $value . '%');