如何从值列表中生成SQL插入查询?

问题描述:

我有一个很长的值列表,我想用SQL Query将它们插入到数据库中,但是编写这个语句需要很长时间。有没有什么办法在PHP中,这将使我准备好从提供的值列表中使用INSERT查询?如何从值列表中生成SQL插入查询?

在此我提供我的(不完全)SQL查询:

INSERT INTO `aichiwj2_reesk`.`me_skills` 
(`id`, `skill_name`, `skill_type`, `timestamp`) 
VALUES 
(NULL, 'Able To Listen', 'it', CURRENT_TIMESTAMP), 
(NULL, 'Accept Feedback', 'it', CURRENT_TIMESTAMP);` 

.....这样下去....

在此我提供值的列表(我使用<li>查看值一个接一个,否则,它被观看一起):

  • ,能够监听
  • 接受反馈
  • 适应性
  • 艺术感觉
  • 自信
  • 细心
  • 业务讲故事
  • 业务趋势意识
  • 合作
  • 通信
  • 竞争
  • 知己
  • 解决冲突
  • 合作
  • 有礼貌
  • 危机管理
  • 关键观察
  • 批判性思考呃
  • 客服
  • 新政使
  • 处理困难的情况
  • 应对办公室政治
  • 优惠有困难的人
  • 决策
  • 专用
  • 代表团
  • 可靠
  • 设计感
  • 的学习欲望
  • 残疾意识
  • 争议解决
  • 多元化意识
  • 将您的技能列表放入数组中,迭代数组并将SQL字符串回显到浏览器。这不是幻想,而是完成工作。

    我真的生锈在PHP,所以我不能够粘贴一个完整的解决方案。像这样的东西可能会工作,但我还没有能够测试它,因为我现在没有使用PHP的机器。

    $array = ("Skill1", "Skill2", "Skill3"); 
    $queries_string = "INSERT INTO `aichiwj2_reesk`.`me_skills` (`id`, `skill_name`, `skill_type`, `timestamp`) VALUES "; 
    for ($i = 0; $i < len($array); $i++) 
        $queries_string .= "(NULL, '"+$array[$i]+"', 'it', CURRENT_TIMESTAMP), "; 
    echo $queries_string 
    

    在屏幕上打印后,您应该替换sinal空格和逗号;

    对不起,我现在的帮助不止于此。

    +0

    嗯,其实我是一个业余的PHP。还不知道数组的概念。如果您可以编写至少5个值的代码,那将会很棒。 –

    +0

    试试我刚添加的代码。不记得PHP子字符串函数,但可以手动替换最后一个空格和逗号;在PHP打印在屏幕上之后。 –

    +0

    对不起!它说 - 行:2,错误类型:4 消息:语法错误,意外'[' –

    我以前用过这个把戏,把你的值放在EXCEL中,然后用CONCAT()一个字符串来得到你的INSERT声明。

    I.e. “INSERT INTO aichiwj2_reeskme_skillsidskill_nameskill_typetimestamp) VALUES(“+ Col1中+ ......

    然后你INSERT语句贴到您的查询编辑器和RUN不是最技术的方式来做到这一点,但它干得不错

    +0

    您知道的其他方式吗? Excel不是我熟悉的东西。 –

    $skills=array("Able to Listen","Accept Feedback","Adaptable", 
           "Artistic Sense","Assertive","Attentive","Business Storytelling", 
           "Business Trend Awareness","Collaborating","Communication", 
           "Competitive","Confidant","Conflict Resolution","Cooperative", 
           "Courteous","Crisis Management","Critical Observer", 
           "Critical Thinker","Customer Service", 
           "Deal Making","Deal with Difficult Situations", 
           "Deal with Office Politics", 
           "Deals with Difficult People","Decision Making","Dedicated", 
           "Delegation","Dependable","Design Sense","Desire to Learn", 
           "Disability Awareness","Dispute Resolution", 
           "Diversity Awareness"); 
    foreach ($skills as $val) { 
        mysql_query("insert into aichiwj2_reesk (skill_name, skill_type, timestamp) values ('$val', 'it', 'CURRENT_TIME')"); 
    } 
    

    对于时间戳你可以把时间VAR从环以上,并插入到查询替换CURRENT_TIME。如果你想利用日期,那么你也可以采取日期。

    +0

    解析错误:语法错误,意外的'to'(T_STRING),期待')'在第10行的/*******/query.php –

    +0

    我有工作请检查您是否已经放置了写入代码。并检查您传递的查询是否正确,并注意引号。 –