如果user_id在表中是唯一的,则插入记录;如果不是,则插入更新列

约翰尼·迈尔

如果user_id在表中是唯一的,我需要INSERT记录map,但如果不是,则用数据更新其中user_id =:user_id的那一行。

我尝试的是:

  try {

      $result = $db->prepare('SELECT user_id FROM map WHERE user_id=:user_id');
      $result->bindParam(':user_id', $user_id); 
      $result->execute();

    //echo $jsonTable;
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }
           try {   
               if ($result==null) {
               $STH = $db->prepare("INSERT INTO map (json, user_id) VALUES (:json, :user_id)");

                $STH->bindParam(':json', $_POST['mapData']);
                $STH->bindParam(':user_id', $user_id);
                $STH->execute();
               } else {
                $STH = $db->prepare("UPDATE map SET json = :json WHERE user_id= :user_id");

                $STH->bindParam(':json', $_POST['mapData']);
                $STH->bindParam(':user_id', $user_id);
                $STH->execute(); 
               }
            } catch (PDOException $e) {
                echo $e->getMessage();
            }
            echo "<p>Data submitted successfully</p>";

        }

所以在这里我尝试检查是否需要将user_id添加到表中,如果没有user_id,那么如果准备的user_id是新的,那么我尝试插入数据,但是如果user_id确实存在于表中,然后更新该记录。 。

但这对我不起作用,也不给我任何错误吗?

我刚开始使用php,因此对这个琐碎的问题感到抱歉...谢谢!

更新:我也尝试插入,但是如果user_id是重复的,则更新:

        try {        
         $STH = $db->prepare("INSERT INTO map (user_id, json) VALUES (:user_id,:json)
on duplicate key update json=values(json)");


                $STH->bindParam(':json', $_POST['mapData']);
                $STH->bindParam(':user_id', $user_id);

                $STH->execute();

            } catch (PDOException $e) {
                echo $e->getMessage();
            }
            echo "<p>Data submitted successfully</p>";
    }
Phate01

要检查唯一性,可以使用唯一键来让数据库检查唯一性:http : //dev.mysql.com/doc/refman/5.6/en/mysql-indexes.html

或者更好,通常id是表的主键,这意味着您不必担心唯一性,主键始终是唯一的,数据库会为您检查它

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果表中存在两列,则更新表;如果两列之一不同,则插入表

来自分类Dev

插入SQL表或更新记录(如果存在)

来自分类Dev

如果插入时表中已经存在“标题”,则更新记录

来自分类Dev

SQL检查是否存在非唯一记录—如果存在,则为UPDATE;否则,为0。如果不是,则将记录插入表

来自分类Dev

Postgres如果不存在则插入,如果非唯一列存在,则更新?

来自分类Dev

MySql表插入,如果不存在,否则在非唯一列上更新

来自分类Dev

如果不存在唯一键,则插入记录

来自分类Dev

如果存在唯一 ID,则更新 MySQL 中的多个列

来自分类Dev

如果表中不存在ID,则在表中插入多个记录

来自分类Dev

更新或插入多个记录(如果不存在于mysql数据库的表中)

来自分类Dev

如果记录不存在,则插入表中

来自分类Dev

批量插入具有唯一ID列(不是Identity)的SQL表

来自分类Dev

如果将记录插入表,则触发插入到另一个表

来自分类Dev

如果将记录插入表,则触发插入到另一个表

来自分类Dev

如果列不包含数组中的值,则插入新记录

来自分类Dev

Laravel Eloquent-在表中插入多条记录(具有唯一约束的列)

来自分类Dev

如果列不是唯一的,如何更新重复键?

来自分类Dev

Mysql 如果为空则插入表中否则更新

来自分类Dev

如果我想在另一张表的一条记录中插入许多记录,该怎么办?

来自分类Dev

如果另一个表中没有记录,则插入到一个表中

来自分类Dev

如果另一个表中没有记录,则插入到一个表中

来自分类Dev

MySQL | 如果字段存在,则更新记录插入的插入

来自分类Dev

比较 2 个 hive 表以查找没有任何唯一列/时间戳的更新/插入/删除记录并将其附加到 Hadoop 中的基表

来自分类Dev

要更新记录(如果存在)并插入(如果不存在)

来自分类Dev

插入Informix表或更新(如果存在)

来自分类Dev

PostgreSQL中的“ IF EXISTS”-创建查询以更新记录(如果存在)并插入(如果不存在)

来自分类Dev

如果列值 id 与另一个表中的 ID 描述匹配,则在指定列中插入数据(规范化形式)

来自分类Dev

如果记录在一张表中,如何显示名称而不是 id?

来自分类Dev

隐式地将唯一记录插入到插入的外键表中

Related 相关文章

  1. 1

    如果表中存在两列,则更新表;如果两列之一不同,则插入表

  2. 2

    插入SQL表或更新记录(如果存在)

  3. 3

    如果插入时表中已经存在“标题”,则更新记录

  4. 4

    SQL检查是否存在非唯一记录—如果存在,则为UPDATE;否则,为0。如果不是,则将记录插入表

  5. 5

    Postgres如果不存在则插入,如果非唯一列存在,则更新?

  6. 6

    MySql表插入,如果不存在,否则在非唯一列上更新

  7. 7

    如果不存在唯一键,则插入记录

  8. 8

    如果存在唯一 ID,则更新 MySQL 中的多个列

  9. 9

    如果表中不存在ID,则在表中插入多个记录

  10. 10

    更新或插入多个记录(如果不存在于mysql数据库的表中)

  11. 11

    如果记录不存在,则插入表中

  12. 12

    批量插入具有唯一ID列(不是Identity)的SQL表

  13. 13

    如果将记录插入表,则触发插入到另一个表

  14. 14

    如果将记录插入表,则触发插入到另一个表

  15. 15

    如果列不包含数组中的值,则插入新记录

  16. 16

    Laravel Eloquent-在表中插入多条记录(具有唯一约束的列)

  17. 17

    如果列不是唯一的,如何更新重复键?

  18. 18

    Mysql 如果为空则插入表中否则更新

  19. 19

    如果我想在另一张表的一条记录中插入许多记录,该怎么办?

  20. 20

    如果另一个表中没有记录,则插入到一个表中

  21. 21

    如果另一个表中没有记录,则插入到一个表中

  22. 22

    MySQL | 如果字段存在,则更新记录插入的插入

  23. 23

    比较 2 个 hive 表以查找没有任何唯一列/时间戳的更新/插入/删除记录并将其附加到 Hadoop 中的基表

  24. 24

    要更新记录(如果存在)并插入(如果不存在)

  25. 25

    插入Informix表或更新(如果存在)

  26. 26

    PostgreSQL中的“ IF EXISTS”-创建查询以更新记录(如果存在)并插入(如果不存在)

  27. 27

    如果列值 id 与另一个表中的 ID 描述匹配,则在指定列中插入数据(规范化形式)

  28. 28

    如果记录在一张表中,如何显示名称而不是 id?

  29. 29

    隐式地将唯一记录插入到插入的外键表中

热门标签

归档