使用alphanum字符串bindparam的类php查询

i2loujxw  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(591)

我´我刚开始使用pdo语句,当我尝试在phpMyAdminSQL控制台中设置这样的查询时,它´s工作正常:

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
}

这里的人真是太棒了

qgelzfjb

qgelzfjb1#

尝试将like matching子句中的param内容隔离为

SELECT name, number FROM client WHERE number LIKE concat('%', '30', '%')

SELECT name, number FROM client WHERE number LIKE concat('%', :your_param , '%')

或同等产品

iq0todco

iq0todco2#

对于bind参数,需要用“%”传递整个字符串
查询:

SELECT name, number FROM client WHERE number LIKE :your_param

代码:

$value = 'some value';
$this->consulta->bindParam('your_param', '%'.  $value . '%');

相关问题