У меня есть строка запроса MySQL с несколькими неназванного местоблюстителем (?
), каждый прием тот же параметр:Что более лаконичный способ, чтобы связать один и тот же параметр, несколько раз, с помощью PDO
$sql = "SELECT DISTINCT A1.pagetitle, A1.content, A1.uri, A2.value, ".
"CASE ".
"WHEN A1.pagetitle LIKE ? THEN 1 ".
"WHEN A1.content LIKE ? THEN 2 ".
"WHEN A2.value LIKE ? THEN 3 ".
"END AS rank ".
"FROM mod_site_content A1 ".
"LEFT JOIN mod_site_tmplvar_contentvalues A2 ".
"ON A1.id = A2.contentid ".
"AND A2.tmplvarid IN(15,17) ".
"WHERE (pagetitle LIKE ? ".
"OR content LIKE ? ".
"OR value LIKE ?) ".
"ORDER BY rank";
$stmt = $db->prepare($sql);
$searchq = "%".$searchq."%";
и в настоящее время я повторив привязки, в то, что кажется довольно многословным образом:
$stmt->bindParam(1, $searchq, PDO::PARAM_STR);
$stmt->bindParam(2, $searchq, PDO::PARAM_STR);
$stmt->bindParam(3, $searchq, PDO::PARAM_STR);
...etc
есть ли опрятнее и более ремонтопригоден способ связывания тот же параметра на любое количество заполнителей?
EDIT: PHP версии 5.10.1
Не работает для меня - я получаю 500 внутренних ошибок с этим. Возможно, вам нужно увидеть всю функцию? – verism