MySQL: подготовить инструкцию не удалось - PullRequest
0 голосов
/ 04 июля 2018

У меня есть класс с функцией, которая подготавливает оператор SQL для помещения данных в базу данных, но есть ошибка, которую я не могу понять, почему это происходит?

public function vnos_narocila($user) //, $hvrsta_narocila, $hlastna_nabava, $hos, $hsm_dn, $hoe, $hartikel1, $hkolicina_artikel1, $hem1, $hartikel2, $hkolicina_artikel2, $hem2, $hartikel3, $hkolicina_artikel3, $hem3, $hartikel4, $hkolicina_artikel4, $hem4, $hartikel5, $hkolicina_artikel5, $hem5, $hartikel6, $hkolicina_artikel6, $hem6, $hartikel7, $hkolicina_artikel7, $hem7, $hartikel8, $hkolicina_artikel8, $hem8, $hartikel9, $hkolicina_artikel9, $hem9, $hartikel10, $hkolicina_artikel10, $hem10, $hprevzemnik, $hopomba, $hzeljen_datum)
    {
        $sql = "SELECT * FROM nabava ORDER BY id_nabava DESC LIMIT 1"; //pridobitev zaporedne številke v letu
        if( !$this->stmt = $this->mysqli->prepare($sql) )
            throw new Exception("MySQL Prepare statement failed: ".$this->mysqli->error);

        $this->stmt->execute();
        $zadnji_zapis = $this->stmt->get_result();
        $zadnji_zapis = $zadnji_zapis-> fetch_array();

        $leto = date('Y');
        if ( !$zadnji_zapis or $zadnji_zapis[leto] != $leto)
            $zap_st=1; 
        else
            $zap_st = $zadnji_zapis[zap_st]+1; 

        $narocilo = "N-".$zap_st."-".$hoe."/".$leto;  //kreiranje številke naročila

        $sql_vnos = "INSERT INTO nabava (vrsta_narocila, lastna_dobava, os, sm_dn, prevzemnik, opomba, zeljen_datum_dobave, narocilo, uporabnik, datum_vnosa, zap_st, oe, leto) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NOW(), ?, ?, ? )";
        if( !$this->stmt = $this->mysqli->prepare($sql_vnos) )
            throw new Exception("MySQL Prepare statement failed: ".$this->mysqli->error);

        $this->stmt->bind_param("iiisssisiiii", $hvrsta_narocila, $hlastna_dobava, $hos, $hsm_dn, $hprevzemnik, $hopomba, $hzeljen_datum, $narocilo, $user, $zap_st, $hoe, $leto );
        if( $this->stmt->execute() )
            return $this->stmt->insert_id;

        return $narocilo;
    }

Вот ошибка:

Неустранимая ошибка: необработанное исключение: оператор MySQL Prepare не выполнен: in /var/www/html/intra_komunalaBrezice/skripte/nabava.php:111 Stack трассировка: # 0 /var/www/html/intra_komunalaBrezice/nabava_vnos.php(27): nabava-> vnos_narocila (1, '1', '1', '1', '200401', '1005', '1', '1', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ' », ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' test ',' test ', '2018-07-04') # 1 {main} добавлено /var/www/html/intra_komunalaBrezice/skripte/nabava.php в строке 111

Пожалуйста, помогите ...

1 Ответ

0 голосов
/ 09 июля 2018

Произошла ошибка в количестве столбцов и количестве пропущенных значений.

Извините, я должен это увидеть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...