2016-12-07 37 views
0

我見過很多類似的問題,但沒有一個解決了我的問題。這是我用來創建存儲過程的代碼。未知列在字段列表,參數化存儲過程

DELIMITER // 
CREATE PROCEDURE sp_regUser(
IN user VARCHAR(100), 
IN name VARCHAR(50), 
IN surname VARCHAR(50), 
IN email VARCHAR(250), 
IN password VARCHAR(250), 
IN telephone VARCHAR(15), 
IN street VARCHAR(120), 
IN postalcode VARCHAR(6), 
IN id INT, 
IN birthdate DATE, 
IN message VARCHAR(320), 
IN photo LONGBLOB, 
IN photoName VARCHAR(50), 
IN role VARCHAR(10) 
) 
BEGIN 
INSERT INTO klientet(Perdoruesi,K_Emri,K_Mbiemri,K_Email,Fjalekalimi,K_T_Kontaktues,K_Rruga,K_KodiPostar,ID_Qyteti,K_Datelindja,Mesazh_shtese,Foto,Foto_Emri,Roli) 
VALUES(user, name, surname, email, password, telephone, street, postalcode, id, birthdate, message, photo, photoName, role); 
END// 
DELIMITER ; 

這也是我把它的方式。

CALL sp_regUser('arlind','Arlind','Hajdari','[email protected]','perdorimi','0037745231807','Muhaxhiret 13','60000',8,'2016-01-01','miredita',LOAD_FILE('E:/Koala.jpg'),'image.jpg','user') 

這樣做的方式,我得到一個錯誤,指出:錯誤代碼:1054未知列「K_Emri」在「字段列表」。在插入語法中指定的列正確對應於數據庫中的列,我不知道什麼是問題。提前致謝。

+0

命令的輸出是什麼? 顯示來自klientet的專欄; –

+0

顯示錯誤(輸出),正如我所說的那樣:錯誤代碼:1054.「字段列表」中的未知列'K_Emri'。而klientet表包含插入語法中指定的所有列,包括ID_Klienti作爲AUTO_INCREMENT的主鍵,並且不必在插入語法中。感謝您的評論。 –

+0

對MySQL來說,它顯然認爲該列不在數據庫中;顯示錶格的DDL/CREATE可以幫助您診斷問題的根源。在其他人們發佈的問題中,類似的問題通常是由於:(1)指向db的測試生產副本而不是生產測試副本,或者(2)在其名稱中具有不明顯字符的列如前導和/或尾隨空格(例如'\'K_Emri \''vs'''K_Emri \''。 – Uueerdo

回答

0

問題出在插入klientet後不得不觸發的觸發器。謝謝你的答案。

相關問題