2014-01-13 117 views
-1

我试图运行此PDO预处理语句PDO预处理语句未捕获的异常错误消息

$stmt = $pdo_conn->prepare(
    "INSERT into email_attachments (email_seq, attachment) 
    values (:email_seq, :attachment) "); 
$stmt->execute(array(
    ':email_seq' => $admin_email_sequence, 
    ':attachment' => $_SERVER["DOCUMENT_ROOT"].'/'.$settings["ticket_files_folder"].'/'.$ticketnumber.'-'.$currentDate.'-'.$at[filename], $at[attachment] 
)); 

,但我得到这个错误:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens' in /home/integra/public_html/autocheck/support_emails.php:662 Stack trace: #0 /home/integra/public_html/autocheck/support_emails.php(662): PDOStatement->execute(Array) #1 {main} thrown in /home/integra/public_html/autocheck/support_emails.php on line 662

+2

什么不明确错误消息? – PeeHaa

回答

1

你有一个额外你执行数组里面,你也有一个额外的数组元素($在[附件]

试试这个代码

$stmt = $pdo_conn->prepare("INSERT into email_attachments (email_seq, attachment) values (:email_seq, :attachment) "); 
$stmt->execute(array(
    ':email_seq' => $admin_email_sequence, 
    ':attachment' => $_SERVER["DOCUMENT_ROOT"] . '/' . $settings["ticket_files_folder"] . '/' . $ticketnumber . '-' . $currentDate . '-' . $at[filename] 
)); 
2

:attachment条目的结尾处,您有一个逗号,而不是我认为应该是一段时间。

.$at[filename], $at[attachment] 
       ^-- here 

这会导致异常,因为您的查询中有2个标签,数组中有3个标签。

相关问题