Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 带有PDO Mysql的REGEXP_Php_Mysql_Regex_Pdo - Fatal编程技术网

Php 带有PDO Mysql的REGEXP

Php 带有PDO Mysql的REGEXP,php,mysql,regex,pdo,Php,Mysql,Regex,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 B

我试图在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;
        } 
当我使用
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;
            } 

请帮助

您不能像那样使用准备好的语句。当您声明占位符时,您可以在占位符上单击,将其留给占位符定义。例如,您可以这样使用它:

$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);