Я новичок в 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
но не был уверен, как применить это здесь.
Может кто-то помочь мне с этим ?
Спасибо заранее,
Майк
В соответствии с просьбой ОП.
Сначала нужно подсчитать результаты в наборе 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)
Других решений пока нет …