2015-07-12 193 views
0

有人能告诉我如何使用shell脚本将多行段落(比如一段非常大的段落)插入到MySQL数据库表中吗?将多行超长字符串插入到MySQL数据库中

这里是我目前使用的功能:

function dbPopulate() 
{ 
    command_ouput=$1 

    mysql -u $DB_USER -p$DB_PASSWORD << EOF 
    use $DB_NAME; 

    INSERT INTO $STATS_TABLE (script_runtime, command_output) VALUES (now(), $command_output); 

    EOF    
} 

注:这里command_output的类型是“LONGTEXT”

+1

这是怎么回事?引用你的变量是否有助于解决问题? (你应该总是*总是*引用你的shell变量扩展。) –

+0

正在传递的文本段落中有新行,特殊字符等,所以我认为它与插入语句的语法冲突 – krckumar

回答

1

您需要添加你想要的字符串引号包围插入:

INSERT INTO `$STATS_TABLE` (script_runtime, command_output) 
    VALUES (now(), '$command_output'); 

我也把身边,你插入到表名,以防止您的脚本时,表名是保留关键字失败的一些反引号。