exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: Anzahl der gebundenen Variablen entspricht nicht Anzahl der Token

Vor dem Lesen: ich weiß die Tabelle ist zu komisch und zu lang, und es muss normiert werden; aber aus irgendeinem Grund ist meine Datenbank und ich sollte die Arbeit mit dieser Tabelle! Sorry!
Um es kurz halten:
Ich bin immer folgende exception:

exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid
parameter Zahl: Anzahl der gebundenen Variablen entspricht nicht Anzahl der
Token' in C:\xampp\htdocs\FD\includes\helper.php:472 Stack trace:

0 C:\xampp\htdocs\FD\includes\helper.php(472): PDOStatement->execute(Array) #1

C:\xampp\htdocs\FD\newHrForm.php(113):
helperFunctions::UpdateTableHrForms('112', 'dfsfdsfds',
'3123213', 'dfdsf', ", ", ", ", ", ", ", ", ", ", ",
'3213123213', '1', '3213123', '213123213', '3213213', '213123123',
) #2 {main}

und meine Funktion zum speichern von Daten ist wie folgt:

public static function UpdateTableHrForms(
        $id,$dob_city,$dob_province,$dob_country,...) 
            {

                $conn = new mysqlcon();
                $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

                $query = "INSERT into `hr_forms` (`id`,`dob_city`,
                    `dob_province`,`dob_country`,...)
                    VALUES (:id,:dob_city,:dob_province,:dob_country,...)";




                try {
                    if (helperFunctions::CheckidExistForms($id) == 0) {
                        $result = $conn->prepare($query);                               
                        $result->execute(array('id'=>$id,'dob_city'=>$dob_city,'dob_province'=>$dob_province,'dob_country'=>$dob_country));



                        $Msg = "<div style=\"text-align:center;\" class=\"alert alert-success\">
                                    <strong>Tips! </strong>
                                        Data is successfully saved to database.
                                    <button class=\"close\" data-dismiss=\"alert\" type=\"button\">&times;</button>
                                </div>";
                    } else {
                        $Msg = "<div style=\"text-align:center;\" class=\"alert alert-error\">
                                    <strong>Error! </strong>
                                        This employee information is already existed in the system.
                                    <button class=\"close\" data-dismiss=\"alert\" type=\"button\">&times;</button>
                                </div>";
                    }
                } catch (Exception $e) {
                    $e->getMessage();
                    $Msg = $e; /* "<div style=\"text-align:center;\" class=\"alert alert-error\">
                      <strong>Error! </strong>
                      This employee information cannot save in the system.
                      <button class=\"close\" data-dismiss=\"alert\" type=\"button\">&times;</button>
                      </div>"; */
                }
                return $Msg;
}

Wenn ich ersetzen Sie die Werte von meiner insert-Methode (in UpdateTableHrForms mit der, der Fehler gibt mir und führen Sie es in mysql; es ist kein Fehler; aber in PHP ist es, dass Sie mir die Fehler; Könnten Sie mir bitte helfen wenn ich was falsch mache?)

  • Ich empfehle, dass Sie lernen, über eine Datenbank-Normalisierung. Keine SQL-Anweisung sollte so groß sein. Keine SQL-Tabelle haben sollte, die viele Spalten.
  • PS: ich weiß die Tabelle ist zu komisch und zu lang, und es muss normiert werden; aber aus irgendeinem Grund ist meine Datenbank und ich sollte die Arbeit mit dieser Tabelle!
  • Es ist Ihnen zu sagen, dass die Anzahl der Spalten deklariert, entspricht nicht der Anzahl der Werte die in der INSERT-Anweisung. So dass Sie letztlich tun, entweder INSERT INTO table (col1, col2, col3) values ('val1','val2') oder man tut INSERT INTO table (col1, col2) values ('val1','val2','val3'). Sie müssen gehen Sie durch den code, und stellen Sie sicher, dass Sie übergeben werden, die richtige Anzahl von Spalten und Werte
  • Danke, MonkeyZeus
InformationsquelleAutor Shima Mdz | 2013-09-12
Schreibe einen Kommentar