我的代码是这样的:
Select * from tableX where tableX.column1 LIKE %:testString%' OR
tableX.column2 Like '%:testString% OR ... '
现在显然这不起作用,因为testString是一个正在重复的命名占位符。我不能做testString2,testString3等,因为我会查找20-30列!这将是一种痛苦!
任何更简单的解决方法?
答案 0 :(得分:-1)
您必须在参数中包含%符号,而不是在查询
中$ 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);