簡體   English   中英

在我的PHP代碼中遇到參數問題,參數未定義

[英]Having issues with parameters in my PHP code, parameters not defined

嘗試構建一個表單以將項目添加到數據庫,但每次單擊“提交”時它都會拋出錯誤,並且我無法發現錯誤。

我正在使用的代碼,它為第52行拋出一個錯誤,它有'));' 而且我試圖改變它,沒有運氣。 任何幫助/指導將不勝感激。

錯誤消息'警告:PDOStatement :: execute():SQLSTATE [HY093]:參數號無效:參數未定義'

<?php

if(isset($_POST['submit'])){

    // Field validation
    if(strlen($_POST['groupname']) == ''){
        $error[] = 'Please enter group/individual name';
    }

    if(strlen($_POST['address1']) == ''){
        $error[] = 'Please enter first line of address';
    }

    if(strlen($_POST['city']) < 2){
        $error[] = 'City field too short.';
    } 
    if(strlen($_POST['postcode']) < 7){
        $error[] = 'Please enter valid postcode.';
    }
    if(strlen($_POST['phone']) < 11){
        $error[] = 'Please enter valid contact number.';
    }
    if(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
        $error[] = 'Please enter a valid email address';
    } else {
        $stmt = $con->prepare('SELECT email FROM groups WHERE email = :email');
        $stmt->execute(array(':email' => $_POST['email']));
        $row = $stmt->fetch(PDO::FETCH_ASSOC);

        if(!empty($row['email'])){
            $error[] = 'Email provided is already in use.';
        }


        //If no errors - proceed
        if(!isset($error)){

            try {

                //insert into database with a prepared statement
                $stmt = $con->prepare('INSERT INTO groups (groupName,address1,address2,city,postcode,phoneNumber,email,coOrdinator)
                                VALUES (:groupname, :address1, :address2, :city, :postcode, :phone, :email, :co-ordinator)');
                $stmt->execute(array(
                                     ':groupname' => $_POST['groupname'],
                                     ':address1' => $_POST['address1'],
                                     ':address2' => $_POST['address2'],
                                     ':city' => $_POST['city'],
                                     ':postcode' => $_POST['postcode'],
                                     ':phone' => $_POST['phone'],
                                     ':email' => $_POST['email'],
                                     ':co-ordinator' => $_POST['co-ordinator']
                                     ));

                if ( $stmt ){
                    echo "<p>Kit has been added successfully!</p>";
                } else {
                    echo "<p>Sorry, there has been a problem adding the item.</p>";
                }


                exit();

                //else catch the exception and show the error.
            } catch(PDOException $e) {
                $error[] = $e->getMessage();
            }
        }
    }

占位符不能包含連字符,它們具有與SQL標識符相同的語法(除了:前綴)。 變化:co-ordinator :coordinator

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM