Mysql 使用函数now()在过程中插入错误

Mysql 使用函数now()在过程中插入错误,mysql,function,insert,procedure,concat,Mysql,Function,Insert,Procedure,Concat,我认为问题在于查询CONCAT(INSERT…)中的char-example“or”我总是得到错误: 0 16:35:45呼叫 插入器(990099,2,1,“标题1”、“Gosc”、“aaa”、“192.168.1.1”、2142623453245,1)错误 代码:1064。您的SQL语法有错误,请查看手册 对应于MySQL服务器版本的正确语法 在第2行的“16:35:44,1,1)”附近使用 至程序: DELIMITER $$ DROP PROCEDURE IF EXISTS InsertU

我认为问题在于查询CONCAT(INSERT…)中的char-example“or”我总是得到错误:

0 16:35:45呼叫 插入器(990099,2,1,“标题1”、“Gosc”、“aaa”、“192.168.1.1”、2142623453245,1)错误 代码:1064。您的SQL语法有错误,请查看手册 对应于MySQL服务器版本的正确语法 在第2行的“16:35:44,1,1)”附近使用

至程序:

DELIMITER $$
DROP PROCEDURE IF EXISTS InsertUser $$
CREATE PROCEDURE `InsertUser`
      (UserId int, ServiceId int(11), CommentsId int(11), 
       Title varchar(255), Nick varchar(20), content text,
       Ip varchar(15), TableCrc int(5),Crc32 int(11) unsigned,
       ArticleId int(11))
BEGIN

        DECLARE tableName VARCHAR(65535);

        set tableName = CONCAT('User',userId);

        CALL CreateUsersTable(tableName);


        set @a = CONCAT("INSERT INTO `", tableName ,"` (`ServiceId`,   
                               `CommentsId`, `Title`, `Content`,`Ip`,
                               `TableCrc`, `Crc32`, `ArticleId`,`Date`,
                                `ViewStatus`, `CommentStatus`) 
                         VALUES (",ServiceId,", ",CommentsId,", '",Title,"',
                                 '",Content,"', '",Ip,"', ",TableCrc,", 
                                ",Crc32,", ",ArticleId,", 
                             ",now(),", 1, 1);");

        PREPARE stmi FROM @a;
        EXECUTE stmi;
        DEALLOCATE PREPARE stmi;          

END$$

NOW()返回的字符串值中有一个嵌入空格

在SQL语句中,需要将其视为字符串,这意味着它需要用单引号括起来。作为一个单独的问题,您不需要分号作为SQL文本的一部分:

更改此项:

", ",now(),", 1, 1);");
                   ^
为此:

", '",now(),"', 1, 1)");
   ^         ^

您是否尝试在now()语句周围加引号?
“,now(),”,1,1);”是的,我是真的,但它现在不工作。问题是输入中的参数。嗨,普泽梅克,欢迎来到StackOverflow!很高兴你能解决你的问题。现在你应该回答你自己的问题,并检查它是否为正确答案。
", '",now(),"', 1, 1)");
   ^         ^