2012-09-21 108 views
0

所以,我使用PHP的PDO得到以下錯誤:PDO無效綁定參數號

SQLSTATE[HY093]: Invalid parameter number: parameter was not defined 

現在,據我瞭解,這個錯誤當一個參數在查詢中使用時,但從來沒有妥善綁定。例如,錯別字使這成爲一個常見的錯誤。

問題是......我似乎無法找到問題!我已經多次查看了每個參數,並且找不到任何差異。其他事情可能會導致這個問題?我只是滾動一個明顯的錯字,需要第二組眼睛才能看到?任何幫助將非常感激!請注意,該錯誤發生在​​上,如果這對您很重要。

$sth = $dbh->prepare(" 
    INSERT INTO administrators 
    (
     org_id, 
     admin_email, 
     passwd, 
     passwd_salt, 
     announcements, 
     logo, 
     design, 
     content, 
     layout, 
     services, 
     contributions_edit, 
     contributions_report, 
     contributions_enable, 
     pledges, 
     calendar, 
     event, 
     survey, 
     email, 
     caller, 
     bulletin, 
     prayer, 
     email_newsletter, 
     member_add, 
     member_edit, 
     passwd_reset, 
     spotlight, 
     profile_status, 
     groups, 
     attendance, 
     sermons, 
     church_info, 
     mail_merge, 
     file_upload, 
     admin_name, 
     administrators, 
     newsletter, 
     outreach, 
     charts, 
     streaming 
    ) 
    VALUES 
    (
     :org_id, 
     :admin_email, 
     :passwd, 
     :passwd_salt, 
     :announcements, 
     :logo, 
     :design, 
     :content, 
     :layout, 
     :services, 
     :contributions_edit, 
     :contributions_report, 
     :contributions_enable, 
     :pledges, 
     :calendar, 
     :event, 
     :survey, 
     :email, 
     :caller, 
     :bulletin, 
     :prayer, 
     :email_newsletter, 
     :member_add, 
     :member_edit, 
     :passwd_reset, 
     :spotlight, 
     :profile_status, 
     :groups, 
     :attendance, 
     :sermons, 
     :church_info, 
     :mail_merge, 
     :file_upload, 
     :admin_name, 
     :administrators, 
     :newsletter, 
     :outreach, 
     :charts, 
     :streaming 
    ) 
    "); 
$sth->bindParam(':org_id,', $org_id); 
$sth->bindParam(':admin_email', $admin_email); 
$sth->bindParam(':passwd', $passwd); 
$sth->bindParam(':passwd_salt', $passwd_salt); 
$sth->bindParam(':announcements', $announcements); 
$sth->bindParam(':logo', $logo); 
$sth->bindParam(':design', $design); 
$sth->bindParam(':content', $content); 
$sth->bindParam(':layout', $layout); 
$sth->bindParam(':services', $services); 
$sth->bindParam(':contributions_edit', $contributions_edit); 
$sth->bindParam(':contributions_report', $contributions_report); 
$sth->bindParam(':contributions_enable', $contributions_enable); 
$sth->bindParam(':pledges', $pledges); 
$sth->bindParam(':calendar', $calendar); 
$sth->bindParam(':event', $event); 
$sth->bindParam(':survey', $survey); 
$sth->bindParam(':email', $email); 
$sth->bindParam(':caller', $caller); 
$sth->bindParam(':bulletin', $bulletin); 
$sth->bindParam(':prayer', $prayer); 
$sth->bindParam(':email_newsletter', $email_newsletter); 
$sth->bindParam(':member_add', $member_add); 
$sth->bindParam(':member_edit', $member_edit); 
$sth->bindParam(':passwd_reset', $passwd_reset); 
$sth->bindParam(':spotlight', $spotlight); 
$sth->bindParam(':profile_status', $profile_status); 
$sth->bindParam(':groups', $groups); 
$sth->bindParam(':attendance', $attendance); 
$sth->bindParam(':sermons', $sermons); 
$sth->bindParam(':church_info', $church_info); 
$sth->bindParam(':mail_merge', $mail_merge); 
$sth->bindParam(':file_upload', $file_upload); 
$sth->bindParam(':admin_name', $admin_name); 
$sth->bindParam(':administrators', $administrators); 
$sth->bindParam(':newsletter', $newsletter); 
$sth->bindParam(':outreach', $outreach); 
$sth->bindParam(':charts', $charts); 
$sth->bindParam(':streaming', $streaming); 
$sth->execute(); 

非常感謝!

+0

你可以做一個var_dump的每個參數傳遞?如果一個或多個定義不正確,可能會導致您的查詢關閉 –

+0

我不相信NULL值會使綁定參數在PDO中失敗。 – Nathanael

+0

這只是一個建議。檢查下面的答案;似乎一個額外的逗號可能已經把它關掉 –

回答

3
$sth->bindParam(':org_id,', $org_id); 
         ^
         | 
         |_____________ This , is intentional? i guess not. 

$sth->bindParam(':admin_email', $admin_email); 
$sth->bindParam(':passwd', $passwd); 
$sth->bindParam(':passwd_salt', $passwd_salt); 
$sth->bindParam(':announcements', $announcements); 
$sth->bindParam(':logo', $logo); 
$sth->bindParam(':design', $design); 
$sth->bindParam(':content', $content); 
$sth->bindParam(':layout', $layout); 
$sth->bindParam(':services', $services); 
$sth->bindParam(':contributions_edit', $contributions_edit); 
$sth->bindParam(':contributions_report', $contributions_report); 
$sth->bindParam(':contributions_enable', $contributions_enable); 
$sth->bindParam(':pledges', $pledges); 
$sth->bindParam(':calendar', $calendar); 
$sth->bindParam(':event', $event); 
$sth->bindParam(':survey', $survey); 
$sth->bindParam(':email', $email); 
$sth->bindParam(':caller', $caller); 
$sth->bindParam(':bulletin', $bulletin); 
$sth->bindParam(':prayer', $prayer); 
$sth->bindParam(':email_newsletter', $email_newsletter); 
$sth->bindParam(':member_add', $member_add); 
$sth->bindParam(':member_edit', $member_edit); 
$sth->bindParam(':passwd_reset', $passwd_reset); 
$sth->bindParam(':spotlight', $spotlight); 
$sth->bindParam(':profile_status', $profile_status); 
$sth->bindParam(':groups', $groups); 
$sth->bindParam(':attendance', $attendance); 
$sth->bindParam(':sermons', $sermons); 
$sth->bindParam(':church_info', $church_info); 
$sth->bindParam(':mail_merge', $mail_merge); 
$sth->bindParam(':file_upload', $file_upload); 
$sth->bindParam(':admin_name', $admin_name); 
$sth->bindParam(':administrators', $administrators); 
$sth->bindParam(':newsletter', $newsletter); 
$sth->bindParam(':outreach', $outreach); 
$sth->bindParam(':charts', $charts); 
$sth->bindParam(':streaming', $streaming); 
$sth->execute(); 
+0

猜猜我只需要第二組眼睛!謝謝! :)只要StackOverflow允許,我會將其標記爲最佳答案! – Nathanael

+0

它發生了。 ;-) – itachi