PHP / MySQL: как использовать INSERT INTO только при соблюдении определенных условий

Я новичок в MySQL и надеюсь, что кто-нибудь может мне помочь с этим.

В настоящее время я использую следующее как часть более длинного оператора в PHP для записи чего-либо в таблицу базы данных, которая работает как задумано:

$stmt = $conn->prepare("INSERT INTO History (email, year, halfYear, language, content) VALUES (?, ?, ?, ?, ?)");
$stmt->bind_param("siiss", $email, $year, $halfYear, $language, $content);
$stmt->execute();
$result = $stmt->get_result();

Как я могу проверить, если соответствующий адрес электронной почты ($email) уже есть 3 записи в БД и только писать в БД, когда у него есть 2 или менее записей (в противном случае я просто хочу что-то повторить)?

Я думал, что мог бы использовать что-то вроде $result->num_rows но не был уверен, как применить это здесь.

Может кто-то помочь мне с этим ?

Спасибо заранее,
Майк

2

Решение

В соответствии с просьбой ОП.

Сначала нужно подсчитать результаты в наборе SELECT all в условном выражении.

Если запрос соответствует критериям, выполните следующий.

Пример использования num_rows:

if($result->num_rows == 3){

// do something
}

else {
// do something else
}

или же num_rows >= 3 Если вы хотите проверить, равен ли он и / или больше 3.

Ссылка:

Примечание:

Будьте осторожны с вашим использованием year это зарезервированное ключевое слово MySQL:

Вы все еще можете использовать его, но так же долго, как оборачиваете его клещами.

т.е .:

(email, `year`, halfYear, language, content)
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]