将列值复制到同一表中的另一列

时间:2015-06-29 20:26:45

标签: php mysql copy

我正在尝试将标题列复制到数据库中的关键字列,因此将从标题中自动插入关键字。

http://store2.up-00.com/2015-06/1435609110941.png

我想在每个单词之前添加逗号','。

" It's my first program "   

它会变成

" It's, my, first, program, "

这是我写的代码。

<?php

  // $id =mysql_insert_id;
  $select_posts = mysql_query("SELECT * FROM `posts`");

  while($row = mysql_fetch_array($select_posts)){
        $id  = $row['post_id'];
        $text =  $row['post_title'];  

       $delim = ' \n\t,.!?:;';
       $tok = strtok($text, $delim);


    while ( $tok !== false){
          echo $tok1 = $tok.',';
          mysql_query("UPDATE `posts` SET  `post_keywords` =  '$tok1' WHERE `post_id` = $id  ");
          $tok = strtok($delim);
        }   
}

?>    

它在每个标题列中插入最后一个单词,因为单词被while循环覆盖。

请帮帮我。

2 个答案:

答案 0 :(得分:1)

Concat值:

... SET post_keywords = CONCAT(post_keywords, '$tok1')

并注意您易受sql injection attacks攻击。仅仅因为数据库中出现的$ tok1值并不意味着在查询中重新安全...

答案 1 :(得分:0)

您可以使用一个查询执行此操作:

UPDATE `posts` SET post_keywords = REPLACE(post_title, ' ', ',');