Har*_*der 2 php regex mysql pdo
我试图在PDO Mydql中使用REGEXP,但有一些错误
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;
}
Run Code Online (Sandbox Code Playgroud)
当我使用时,这是行不通的,REGEXP \"^[:artist]\" 但如果我使用的话
REGEXP \"^[$artist]\"
Run Code Online (Sandbox Code Playgroud)
有用
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;
}
Run Code Online (Sandbox Code Playgroud)
请帮忙
您不能使用这样的预处理语句.声明占位符时,可以避免对它们执行任何相关操作,将其留给占位符值定义.所以,例如,您可以这样使用它:
$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);
Run Code Online (Sandbox Code Playgroud)