REGEXP с PDO Mysql

Я пытаюсь использовать REGEXP в PDO Mydql, но что-то не так

function artist_list($artist){ global $DBH; $STH = $DBH->prepare("SELECT songs ,image ,artist,album,r_year FROM english_fm WHERE artist REGEXP \"^[:artist]\" GROUP BY artist order by slno"); $STH->bindValue(":artist" , "$artist", PDO::PARAM_STR); $STH->execute(); $STH->setFetchMode(PDO::FETCH_ASSOC); return $STH; $DBH = Null; } 

это не работает, когда я использую REGEXP \"^[:artist]\" но если я использую

 REGEXP \"^[$artist]\" 

оно работает

 function artist_list($artist){ global $DBH; $STH = $DBH->prepare("SELECT songs ,image ,artist,album,r_year FROM english_fm WHERE artist REGEXP \"^[$artist]\" GROUP BY artist order by slno"); $STH->bindValue(":artist" , "$artist", PDO::PARAM_STR); $STH->execute(); $STH->setFetchMode(PDO::FETCH_ASSOC); return $STH; $DBH = Null; } 

пожалуйста помоги

Вы не можете использовать подготовленные заявления, подобные этому. Когда вы объявляете местозаполнитель, вы избегаете делать какие-либо связанные с ними вещи , оставляя это для определения значения placeholder. Так, например, вы можете использовать его так:

 $STH = $DBH->prepare("SELECT songs ,image ,artist,album,r_year FROM english_fm WHERE artist REGEXP :artist GROUP BY artist order by slno"); $STH->bindValue(":artist" , "^[$artist]", PDO::PARAM_STR);