Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如果存在mysqli php,则编辑重复_Php_Mysql_Database_Mysqli - Fatal编程技术网

如果存在mysqli php,则编辑重复

如果存在mysqli php,则编辑重复,php,mysql,database,mysqli,Php,Mysql,Database,Mysqli,我的mysqli插入代码有一些问题。 我真的不知道如何处理重复项,但我在那里读了很多文章,我试图让它工作,但当我使用相同的变量执行此代码时,行数会增加。你能帮我修复这个代码吗,或者找到另一种方法来检查重复的代码 // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) {

我的mysqli插入代码有一些问题。 我真的不知道如何处理重复项,但我在那里读了很多文章,我试图让它工作,但当我使用相同的变量执行此代码时,行数会增加。你能帮我修复这个代码吗,或者找到另一种方法来检查重复的代码

  // Create connection
  $conn = new mysqli($servername, $username, $password, $dbname);
  // Check connection
  if ($conn->connect_error) {
     die("Connection failed: " . $conn->connect_error);
  }


  if ($stmt = $conn->prepare(
    "INSERT INTO matka (jmeno, prijmeni, bydliste, telefon, email)
    VALUES (?,?,?,?,?)
    ON DUPLICATE KEY UPDATE
    jmeno = VALUES(jmeno),
    prijmeni = VALUES(prijmeni),
    bydliste = VALUES(bydliste),
    telefon = VALUES(telefon),
    email = VALUES(email)" )) {
  $stmt->bind_param("sssss", $jmeno_matky, $prijmeni_matky, $bydliste_matky, $telefon_matky, $email_matky);
  $stmt->execute();
  printf("%d Row inserted.\n", $stmt->affected_rows);
  $stmt->close();
  $id_matky = $conn->insert_id;
  $conn->close();
  }

重复键上的
依赖于是否定义了主键或唯一键。这意味着在两行中定义键的列不能相同

例如,如果您在
电子邮件
上设置了一个唯一键,如下所示:

matka上创建索引matka\u电子邮件(电子邮件)

然后,当您尝试插入记录且电子邮件地址已存在时,它将在重复键上的
之后更新查询中定义的字段

请注意,唯一键可能涉及以下几列:

创建索引matka_matka上的所有数据(jmeno、prijmeni、bydliste、telefon、email)

见文件:


我以前从未见过
prijmeni=VALUES()
语法,这样行吗?另外,如果只是更新到我只会忽略的相同数据,
insert ignore
。我就在那里:他的代码看起来和我的相似,所以我尝试了一下。然后我是否应该使用而不是INSERT INTO tablename(…)-INSERT IGNORE tablename(…)?
INSERT IGNORE
只会忽略在重复尝试时会出现的错误。如果你没有unique,那就不会出错。在那里做一些独特的东西,这样你就知道什么时候dup不应该发生。哦,谢谢你,我想我可以用它来检查是否所有数据都存在。您知道我应该如何检查这些值是否已经存在吗?这将对我有很大帮助。你可以在所有字段中创建一个唯一的键-我将用一个例子更新答案