#php #mysql
#php #mysql
Вопрос:
Я рассматриваю, как обновить конкретную таблицу в зависимости от того, существует ли идентификатор уже в этой таблице или необходимо создать запись.
Я планирую использовать функцию, которой передается идентификационный номер из основной таблицы в базе данных. Значение идентификатора.
итак, что-то вроде update ($id). Но когда вызывается эта функция, я не совсем понимаю, как проверить, существует ли значение уже в базе данных, и если оно существует, то обновляет запись. Если это не так, создайте запись. Есть мысли?
Я понимаю, как обновить таблицу, но не понимаю, как использовать требуемые мне условные операторы.
$query = "UPDATE reports FROM them where id='$id'";
ПСЕВДОКОД:
- Проверьте, существует ли $id в таблице.
- Если $id существует, обновите эту строку
- Если $id не существует, создайте запись.
Ответ №1:
Вам необходимо заранее выполнить инструкцию select, чтобы проверить, существует ли запись с таким идентификатором. Если результаты выполнения запроса не пустые, используйте инструкцию UPDATE. Если результаты пусты, вместо этого вызовите INSERT.
Чтобы проверить наличие существующих записей, используйте запрос, подобный приведенному ниже. Приведен пример кода.
SQL:
"Select * from reports where id='$id'";
PHP:
$result = mysql_query("Select * from reports where id='$id'");
if (mysql_num_rows($result) > 0) {
mysql_query("UPDATE...(your update statement query string)");
} else {
mysql_query("INSERT...(your insert statement query string)");
}
Обратите внимание, что это базовый пример, и вы должны помнить, что нужно выполнять такие действия, как очистка переменных вашего запроса, чтобы предотвратить внедрение SQL, а также проверять наличие ошибок при выполнении запроса.
Комментарии:
1. Спасибо, Брайан. Я тоже думал об этом, но не был уверен, что это самый эффективный способ удовлетворить мои потребности.