Вставить строку, если не существует mysql с POST - PullRequest
0 голосов
/ 28 сентября 2018

Я прочитал всю информацию в предыдущих вопросах, и я сделал, но, к сожалению, я не получил положительного ответа.Я хочу сохранить информацию, отправленную с 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";
}

Ответы [ 2 ]

0 голосов
/ 13 января 2019

Я просто добавляю ON DUPLICATE KEY UPDATE .это решение:

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

tnx каждому за помощь!

0 голосов
/ 28 сентября 2018

Одна вещь, которую вы можете сделать, это убедиться, что у вас есть первичный ключ или уникальный ключ в вашей таблице checkout_page, и вместо того, чтобы делать if else, вы бы сделали try / catch.Ваш код будет выполняться каждый раз, но будет вставлять только одну запись для каждого кода, например (при условии, что код - это PK).Другой способ сделать это - выполнить запрос перед вставкой, чтобы проверить, вставлена ​​ли уже эта запись, и выполнять вставку только тогда, когда запрос не возвращает результатов.

...