PHP在重复密钥更新时将数据插入mysql - 添加后缀

时间:2015-03-16 20:57:17

标签: php mysql sql duplicates

希望在带有后缀的mysql中插入重复的条目。这是一个例子:

+-------+--------------+-------+
| ID    | Title        | url   |
+-------+--------------+-------+

+-------+--------------+-------+
| 1     | test         | test1 |
+-------+--------------+-------+
| 2     | test         | test2 |
+-------+--------------+-------+
| 3     | test         | test3 |
+-------+--------------+-------+

表示我想将自动编号作为后缀添加到每个具有重复标题的网址的末尾。标题是重复的,但网址有点独特。

以下是查询:

 $i = 0;
    $i++;

    $sql = "INSERT INTO `content` (title, text, cat, url, tag)
    VALUES ('".$_POST["title"]."', '".$_POST["text"]."', '".$_POST["category"]."', '".$_POST["url"]."', '".$_POST["tag"]."') ON DUPLICATE KEY UPDATE url=".$_POST["url"]."+". $i ."";

注意:url根据标题条目动态制作。 这个查询不起作用,我的代码出了什么问题?

更新:运行查询后出现错误:

  

错误:INSERT INTO content(标题,文字,cat,url,tag)值   (' test',''' 16',' test','')关于重复主题更新URL =测试+ 1   未知列'测试'在'字段列表'

1 个答案:

答案 0 :(得分:0)

你的代码有一些奇怪的东西。 $ i = 0;接下来是$ i ++;只是等于做$ i = 1;但话又说回来,设置一个只使用一次的变量的目的是什么?

你真正需要做的是:

  1. INSERT查询遗忘了" url"字段并删除ON DUPLICATE ...
  2. 获取最后一次插入的ID。请查看以下链接,了解如何获取该值:http://www.w3schools.com/php/php_mysql_insert_lastid.asp

  3. 更新查询以设置" url"

    的值
    $_POST["url"].$id_of_last_query