Как добавить ряд проверок, прежде чем сделать запись в файл?

У меня есть такой код, который из формы записывает введенные в поле input данные каждый раз с новой строки:

    if(isset($_POST['fav']))
    {
        $uniqueid = $_POST['uniqueid'];
        file_put_contents('us/db/fav/'.$us_id.'', $uniqueid."\r\n", FILE_APPEND | LOCK_EX);
        echo "<meta http-equiv=refresh content='0; url=page.php'>";
        exit();
    }

<form action='' name='' method='post'>
<input name='uniqueid' type='text' value=''>
<button name='fav' type='submit' value='Search'>Search</button>
</form>

Этот код у меня работает прекрасно. Подскажите пожалуйста, но как добавить ряд следующих проверок с условиями, прежде чем сделать запись в файл? Когда пользователь вводит данные в поле input, то первая проверка:

  1. совпадают ли введенные в поле input данные с Названием какого-либо файла в папке admin/db/rec/
  • Если нет полного совпадения, то никаких действий;
  • Если есть полное совпадение, то перейти к следующей проверке:
  1. Совпадают ли введенные в поле input данные с какой-либо строкой, записанной в файле us/db/fav/$us_id
  • Если нет, то записать введенные в поле input данные в файл us/db/fav/$us_id;
  • Если да, то никаких действий.

Ответы (1 шт):

Автор решения: Ипатьев

Сил смотреть на эти мучения нет никаких

// подключаемся к базе данных
$db = new PDO("sqlite:".__DIR__."/database.sql");
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

// проверяем пользователя
$stmt = $pdo->prepare("SELECT 1 FROM users WHERE id=?");
$stmt->execute([$user_id]);
$exists = $stmt->fetchColumn();
if (!$exists) {
    die("Пользователь не найден\n");
}
// вставляем значение
$stmt = $pdo->prepare("INSERT OR IGNORE INTO fav (user_id, value) VALUES (?,?)" );
$stmt->execute([$user_id,$value]);

В этом коде уже есть все проверки. Рабочая демонстрация

Как видно, если подставить несуществующего пользователя, то никаких добавлений не будет. Если попытаться добавить уже существующее у этого пользователя значение, никаких добавлений не будет

→ Ссылка