Проверка на наличие записи MySQL & PHP

487
13 апреля 2017, 19:54

Имеется php файл который выводит название городов. Нужно сделать так, что бы перед выводом информации шла проверка на наличие записи в БД. Т.Е. файл стучится в БД, проверяет, существует ли такая запись:

$mysqli->query("SELECT * FROM Key WHERE Name LIKE '%".$Name."%'");

Если запись есть, то вытянуть из БД "соответствующую информацию".

Если записи нет, то запустить один скрипт, с генерировать "соответствующую информацию" добавить в БД. И при следующей загрузке страницы после проверки на существование, она там была.

Answer 1
$result = $mysqli->query("SELECT * FROM Key WHERE Name LIKE '%".$Name."%'");
if ($result->num_rows > 0) {
//do Something 
}
Answer 2

Для проверки существования данных по запросу предназначена функция EXISTS

SELECT EXISTS(SELECT * FROM Key WHERE Name LIKE ?)

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

Примерно таким же(зависит от деталей реализации) эффектом обладает запрос

SELECT 1 FROM Key WHERE Name LIKE ? LIMIT 1

Однако, утверждение

Если запись есть, то вытянуть из БД "соответствующую информацию".

говорит о том, что данные, если они есть вы всё равно планируете получать полностью.

Поэтому, всё, что вам нужно - проверить mysqli_result::$num_rows

READ ALSO
starter-kit glide 500 ошибка

starter-kit glide 500 ошибка

Использую стартер-кит и в нем glideНо при заливке на продакшен появилась ошибка 500 при загрузке картинок src="http://site

269
Как сделать вывод, как в VK

Как сделать вывод, как в VK

Помогите сделать вывод сообщений как в диалоговом окне в VK( не по стилю, а по функционалу),что бы выводило сообщения по времени(вместо его...

243
Формирование массива данных из csv файла

Формирование массива данных из csv файла

Есть небольшой файл в формате csv, каждый столбец которого я чоху записать в массивДля этого я пишу следующий код:

298