插入行如果不存在 mysql 和 POST

INSERT Row If Does Not Exist mysql with POST

我已经阅读了前面问题中的所有信息并且我已经阅读了,但遗憾的是我没有得到肯定的答复。 我想将从 Android 发布的信息存储到数据库中 前提是此信息尚不可用 这是我的 php 代码,从 Android 发送信息不是问题:

<?php
if($_SERVER['REQUEST_METHOD']=='POST'){
    define('DB_USERNAME', '***');
    define('DB_PASSWORD', '***');
    define('DB_HOST', 'localhost');
    define('DB_NAME', '***');

    $conn = new mysqli(DB_HOST, DB_USERNAME, DB_PASSWORD, DB_NAME);
    $username = $_POST['username'];
    $photo = $_POST['photo'];
    $code = $_POST['code'];

    $strSQL = " INSERT INTO checkout_page (code , username ,photo , isactive) VALUES('$code' , '$username' , '$photo' , 'TRUE')";

    if(mysqli_query($conn,$strSQL)){
        echo "insert";
    }

    mysqli_close($conn);
}else{
    echo "problem";
}

您可以做的一件事是确保您的 checkout_page table 中有一个主键或唯一键,而不是执行 if else,您可以执行 try/catch.您的代码将每次执行,但只会为每个代码插入一条记录(例如,假设代码是 PK)。 另一种方法是在插入之前 运行 查询以检查是否已插入此记录,并且仅在查询 returns 没有结果时才执行插入。

我只是添加 ON DUPLICATE KEY UPDATE 。 这是解决方案:

$strSQL = " INSERT INTO page (id , code , username ) VALUES('$id' , '$code' , '$username' ) ON DUPLICATE KEY UPDATE code='$code')";

tnx大家帮忙!