错误 PDO 插入:SQLSTATE[HY093]:参数数量无效:绑定变量的数量与标记数量不匹配

Gus*_*cco -1 php mysql pdo insert

我正在尝试使用 PDO id_facebook (mysql bigint)、name(mysql varchar) 和 email(mysql varchar) 插入,但无法解决此错误,PDO 语法看起来正确,可以是什么?

public static function inserirUsuarioFacebook($id_facebook, $nome, $email)
{
    try
    {
        $pdo = Conexao::getInstance();

        $consulta = $pdo->prepare("INSERTO INTO usuario_facebook (id_facebook, nome, email) VALUES (:id_facebook, ':nome', ':email')");
        $consulta->bindParam(':id_facebook', $id_facebook, PDO::PARAM_INT);
        $consulta->bindParam(':nome', $nome, PDO::PARAM_STR);
        $consulta->bindParam(':email', $email, PDO::PARAM_STR);
        $consulta->execute();   
    }
    catch(PDOException $e)
    {
        echo $e->getMessage();
    }
}
Run Code Online (Sandbox Code Playgroud)

Mar*_*c B 5

您不引用占位符。这会将它们变成字符串,而不是占位符:

... VALUES(:id_facebook, :nome, :email)
                         ^----^-^-----^--- note the lack of quotes
Run Code Online (Sandbox Code Playgroud)

就是所需要的一切

占位符的全部目的是消除任何引用/转义的需要。数据库引擎会为您处理所有这些事情。