PDO准备失败

Dov*_*vas 1 php mysql pdo

// BETA KEYS //
function getBetaKey( $key ) {

    global $pdo;

    $get = $pdo -> prepare( "SELECT * FROM ".DB_PREFIX."betakeys WHERE key = :key" );
    $get -> execute( array( ':key' => $key ) );
    $get -> setFetchMode( PDO::FETCH_ASSOC );

    return $get -> fetch( );

}
Run Code Online (Sandbox Code Playgroud)

失败,出现此错误:

您的SQL语法有错误; 查看与您的MySQL服务器版本对应的手册,以便在''base_betakeys'附近使用正确的语法'WHERE'key'='{randomKey}'

当我在准备语句中使用这个`时,如下所示:

    // BETA KEYS //
function getBetaKey( $key ) {

    global $pdo;

    $get = $pdo -> prepare( "SELECT * FROM `".DB_PREFIX."betakeys` WHERE `key` = :key" );
    $get -> execute( array( ':key' => $key ) );
    $get -> setFetchMode( PDO::FETCH_ASSOC );

    return $get -> fetch( );

}
Run Code Online (Sandbox Code Playgroud)

它有效,有什么问题?

Ben*_*une 5

key 是MYSQL中的保留字.

你可以`backticks`像你一样把它包起来逃避这个词.

在这里查看更多.