2012-08-02 68 views
0

程序中錯誤插入。該插入添加的所有列,而不用戶ID在程序中錯誤插入MySQL

---------------------------------------------------------------------------------- 
-- Routine DDL 
-- Note: comments before and after the routine body will not be stored by the server 
-- -------------------------------------------------------------------------------- 
DELIMITER $$ 
DROP PROCEDURE IF EXISTS CreateTable $$ 
CREATE PROCEDURE `CreateTable` 
(
    md5 VARCHAR(255),table_name VARCHAR(255),CommentsId INT(11), 
    Parent VARCHAR(100), Content TEXT,UserId INT(11), Title VARCHAR(255), 
    Nick VARCHAR(20), IdLength INT(11), suffix INT(11) 
) 
BEGIN 



DECLARE full_table_name varchar(255); 

SET @SQL=CONCAT('SELECT COUNT(\'X\') INTO @COUNTER FROM INFORMATION_SCHEMA.COLUMNS ', 
      'WHERE TABLE_NAME like \'', table_name, '%\''); 

PREPARE stmt FROM @SQL; 
EXECUTE stmt; 
DEALLOCATE PREPARE stmt; 

    SET full_table_name= table_name; 


    SET @SQL=CONCAT('CREATE TABLE IF NOT EXISTS ', full_table_name, ' LIKE CommentsPattern'); 
    PREPARE stmt FROM @SQL; 
    EXECUTE stmt; 
    DEALLOCATE PREPARE stmt; 


SET @SQL=CONCAT('INSERT INTO ', full_table_name,'(md5,UserId, Parent, Content, CommentsId, Title, Nick,IdLength,suffix)', 
     'values(',UserId,',"',md5, '",', Parent, ',"', Content, '",',CommentsId,',"',Title,'","',Nick,'",', IdLength, ',',suffix, ')'); 
    prepare stmt from @sql; 
    execute stmt; 
    deallocate prepare stmt; 

END 

我要添加此值:

call CreateTable('dcf57shasdsd5723m','dcf',2,60201,'My article is',444,'New Title','Ethan',1,2); 

其中:

  1. MD5 - dfc7shgsnsty3475723m
  2. table_name的 - DFC
  3. 用戶ID - 444
  4. 標題 - 新標題
  5. 尼克 - 伊桑
  6. CommentsId - 2
  7. 家長 - 60201
  8. IdLength - 1
  9. 後綴 - 2
  10. 內容 - 我的文章是

回答

1

在INSERT INTO聲明的順序列:MD5,用戶ID,家長,... 然而,在值md5和UserId值被切換:',UserId,','',md5,'「,',父

+0

感謝幫助:)! – user1551590 2012-08-02 08:46:58