2015-11-29 5 views
1

У меня довольно странная проблема с функцией PHP bind_param для MySQLi.MySQLi bind_param() не работает

Я создаю запрос с?, Где параметры будут связаны, я готовлю оператор, привязываю параметры, а затем выполняю оператор. По какой-то причине это не связывает параметры. Система является прототипом программного обеспечения для набора персонала, и это используется для обновления сведений для зарегистрированного заявителя.

Вот код:

$query = "UPDATE Applicants SET University_College='?', Notice_Period='?', Wanting_To_Leave='?', Reason_Leaving='?', Interviews_Arranged='?', Companies_To_Contact='?', Like_To_Work_For='?', Applicant_Division='?', Applicant_First_Name='?', Applicant_Last_Name='?', T_P_C='?', Applicant_Phone_Number='?', Applicant_Mobile='?', Applicant_Email='?', Applicant_Current_Company='?', Applicant_Current_Job_Title='?', Applicant_Current_Salary='?', Applicant_Miles_To_Work='?', Applicant_Consultants_ID='?', Applicant_Title='?', Applicant_DOU=NOW(), Applicant_Industry='?', Applicant_Languages='?', Applicant_Employment_Status='?', Applicant_Advert='?', Applicant_Town='?', Applicant_Country='?', Applicant_Address='?', Applicant_Postcode='?', Applicant_Qualification_Level='?', Applicant_Qualification_Field='?', Applicant_Notice_Period='?', CV_Text='?' WHERE Applicant_ID='?' "; 

    $stmt = $con->prepare($query); 
    $stmt->bind_param("ssssssssssssssssssisssssssssssssi", $UniversityCollege, $NoticePeriod, $WantingToLeave, $ReasonLeaving, $InterviewsArranged, $CompaniesToContact, $LikeToWorkFor, $ApplicantDivision, $ApplicantFirstName, $ApplicantLastName, $TPC, $ApplicantPhoneNumber, $ApplicantMobile, $ApplicantEmail, $ApplicantCurrentCompany, $ApplicantCurrentJob, $ApplicantCurrentSalary, $ApplicantMilesToWork, $ConsultantsID, $ApplicantTitle, $ApplicantIndustry, $ApplicantLanguages, $ApplicantEmploymentStatus, $ApplicantAdvert, $ApplicantTown, $ApplicantCountry, $ApplicantAddress, $ApplicantPostcode, $ApplicantQualificationLevel, $ApplicantQualificationField, $ApplicantNoticePeriod, $CVText, $ApplicantID); 

    $stmt->execute() or die("Something went wrong, could not update applicant :-("); 

    printf("%d Row inserted.\n", $stmt->affected_rows);      

Любая помощь очень ценится!

Большое спасибо!

ответ

2

'?' означает строку с одним символом ?. Заполнитель просто ?:

$query = "UPDATE Applicants SET University_College=?, Notice_Period=?... 
+0

Спасибо за ответ! У меня не было большого опыта работы с подготовленными заявлениями, и это действительно помогло! Я честно думал, что апострофы нужны! Я бы проголосовал за вас, но я боялся, что у меня не хватит репутации :-(Еще раз спасибо! – willcaddy

Смежные вопросы