mysqli_stmt :: bind_param (): Число элементов в строке определения типа не совпадает с числом переменных привязки

Таким образом, у меня есть эта массивная головная боль, вызывающая запрос, который мне нужно выполнить, включая 65 входных форм, которые необходимо вставить в базу данных с помощью подготовленных инструкций mysqli.

Проблема, с которой я сталкиваюсь, заключается в том, что он говорит, что # переменных, которые я bind_param вызвать bind_param , не соответствует # из “s”, которые я использую. Я посчитал дюжину раз и не вижу, где я ошибаюсь. Есть 65 переменных и 65 “s”.

Может ли кто-нибудь увидеть то, что мне не хватает? Или я могу использовать метод bind_param некорректно?

 // Preparing our query statement via mysqli which will auto-escape all bad characters to prevent injection $query3 = 'INSERT INTO datashep_AMS.COMPLETE_APPLICATIONS ( project_name, status, funding_requested, project_title, program, county, parish, name_of_watercourse, which_is_a_tributary_of, name_of_applicant, contact_person_or_project_supervisor, relationship_to_organization, business_phone, home_phone, email, signature_of_thesis_or_study_supervisor, mailing_address, postal_code, website, mailing_address_for_payment, hst_registration_no, total_cost_dollar, total_cost_percent, dollar_amount_requested_from_nbwtf, percent_amount_requested_from_nbwtf, descriptive_summary, background_of_organization, mandate, years_in_existence, membership, accomplishments, previous_project_name, previous_project_number, previous_project_amount_received_from_nbwtf, summary_of_activities, summary_of_Results, project_title_2, reason_and_or_purpose, objectives, project_description, methods, equipment_and_materials_required, personnel_required, proposed_start_date, proposed_end_date, type_of_data_to_be_stored, where_will_it_be_housed, monitoring, short_term_achievement, long_term_achievement, previous_studies, required_permits, consultants, short_term_commitment, long_term_commitment, project_duration, project_evaluation, promotion_of_project, promotion_of_client, publication_of_results, community_benefits, effects_on_traditional_uses, possible_changes_in_public_access_to_areas, possible_impact_on_wildlife_and_or_environment, likelihood_of_future_requests_for_funding, list_all_other_funding_sources_for_this_project ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )'; // "Preparing" the query using mysqli->prepare(query) -- which is the equivalent of mysql_real_escape_string -- in other words, it's the SAFE database injection method $stmt = $dbConnection->prepare($query3); // "Bind_param" == replace all the "?"'s in the aforementioned query with the variables below $stmt->bind_param("s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s", $project_name, $status, $funding_requested, $project_title, $program, $county, $parish, $name_of_watercourse, $which_is_a_tributary_of, $name_of_applicant, $contact_person_or_project_supervisor, $relationship_to_organization, $business_phone, $home_phone, $email, $signature_of_thesis_or_study_supervisor, $mailing_address, $postal_code, $website, $mailing_address_for_payment, $hst_registration_no, $total_cost_dollar, $total_cost_percent, $dollar_amount_requested_from_nbwtf, $percent_amount_requested_from_nbwtf, $descriptive_summary, $background_of_organization, $mandate, $years_in_existence, $membership, $accomplishments, $previous_project_name, $previous_project_number, $previous_project_amount_received_from_nbwtf, $summary_of_activities, $summary_of_Results, $project_title_2, $reason_and_or_purpose, $objectives, $project_description, $methods, $equipment_and_materials_required, $personnel_required, $proposed_start_date, $proposed_end_date, $type_of_data_to_be_stored, $where_will_it_be_housed, $monitoring, $short_term_commitment, $long_term_achievement, $previous_studies, $required_permits, $consultants, $short_term_commitment, $long_term_commitment, $project_duration, $project_evaluation, $promotion_of_project, $promotion_of_client, $publication_of_results, $community_benefits, $effects_on_traditional_uses, $possible_changes_in_public_access_to_areas, $possible_impact_on_wildlife_and_or_environment, $likelihood_of_future_requests_for_funding, $list_all_other_funding_sources_for_this_project); // Perform the actual query! $stmt->execute(); 

    2 Solutions collect form web for “mysqli_stmt :: bind_param (): Число элементов в строке определения типа не совпадает с числом переменных привязки”

    Символы в строке не должны разделяться запятыми:

     $stmt->bind_param("sss...", /* variables */); 

    Этот формат можно увидеть в примерах на странице руководства .

    есть 65 строковых параметров, поэтому, если есть 65 с, у вас есть правильный номер. Однако ошибки появляются потому, что вы разделили s запятыми. Вместо $stmt->bind_param("s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s,s..." должен быть

     $stmt->bind_param("sssssssssssssssss..." 

    Это должно решить ваши ошибки.

    Давайте будем гением компьютера.