Php pdo可以';不允许重复使用占位符-what';搜索多列的另一种方法是什么?

Php pdo可以';不允许重复使用占位符-what';搜索多列的另一种方法是什么?,php,pdo,Php,Pdo,我的代码如下: Select * from tableX where tableX.column1 LIKE %:testString%' OR tableX.column2 Like '%:testString% OR ... ' 现在很明显,这是行不通的,因为testString是一个命名的占位符,正在重复。我不能做testString2、testString3等等,因为我要查找20-30列!那会很痛苦的 有更简单的解决方法吗?您必须在参数中包括%符号,而不是在查询中 $testStri

我的代码如下:

Select * from tableX where tableX.column1 LIKE %:testString%' OR 
tableX.column2 Like '%:testString% OR ... '
现在很明显,这是行不通的,因为testString是一个命名的占位符,正在重复。我不能做testString2、testString3等等,因为我要查找20-30列!那会很痛苦的


有更简单的解决方法吗?

您必须在参数中包括%符号,而不是在查询中

$testString=%testString%

还使用未命名参数,每个?都需要一个单独的参数?。使用命名参数可以避免这种情况

$stmt = $dbh->prepare("Select * from tableX where tableX.column1 LIKE :testString
                      OR tableX.column2 Like :testString OR ... ");
$stmt->bindParam(':testString',$testString, PDO::PARAM_STR);

要么动态生成名称,要么使用
@lvaroG.Vicario你能混合吗?和bindParam?我想对查询的其他部分使用bindParam。