Php 如何检查命名占位符==执行数组键?确定:引发异常

Php 如何检查命名占位符==执行数组键?确定:引发异常,php,exception,pdo,error-handling,Php,Exception,Pdo,Error Handling,是否有一种标准的方法可以将命名参数与数组键匹配,如果找不到,则抛出异常 例如,在下面的代码中,prepare表示存在field1,但execute数组没有这样的键: try{ $statement = $conn->prepare("UPDATE tablename SET field = :field WHERE field2 = :field1"); $statement->execute(array( ':field' =

是否有一种标准的方法可以将命名参数与数组键匹配,如果找不到,则抛出异常

例如,在下面的代码中,prepare表示存在field1,但execute数组没有这样的键:

try{
    $statement = $conn->prepare("UPDATE tablename SET field = :field WHERE field2 = :field1");
    $statement->execute(array(
                    ':field' => $value,
                    ':field2'=>$value2
                    ));                 
    }
    catch(PDOException $pdo_error){
                echo "Error msg..";
            }

如果启用了
PDO::ERRMODE\u异常
,应该执行
catch
块。您应该得到此问题中显示的异常:您需要显示来自
$pdo_error
的错误消息,而不是只回显您自己的错误字符串。您发布的链接中的解决方案是用户定义的。我在发布此问题之前已经讨论过了。是否有一些错误内置/标准功能/方式..显示的内容是次要的..首先程序执行应该到达
捕获
块我并没有向您指出解决方案,只是问题。它表明,当缺少占位符时,PDO会自动引发异常。