Я пытаюсь проверить уникальную запись при редактировании/обновлении записи. Я проверяю, выполнив поиск в базе данных, если запись не найдена, а затем еще раз распечатайте сообщение об ошибке. Если запись (я использую этот же процесс при добавлении новых записей)Подтвердить уникальную запись при редактировании/обновлении
Мой код проверки является:
if (!empty($_POST['ip_add'])) {
if (filter_var($_POST['ip_add'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4) === false) {
$errors[] = $_POST['ip_add'] . ' is not a valid IPv4';
} else {
$ip = $_POST['ip_add'];
//check if ip is unique
$qip = 'select INET_NTOA(ip_add) AS ip_add from equipment where ip_add = INET_ATON(:ip)';
$database->query($qip);
$database->bind(':ip', $ip);
$rs = $database->resultset();
//execute our query
$database->execute();
if ($rs != null) {
$errors[] = $_POST['ip_add'] . ' is not unique';
} else {
$ip_add = $_POST['ip_add'];
}
}
} else {
$errors[] = "Please enter a valid IP address";
}
, если нет базы данных ошибок обновления:
$query = "
UPDATE equipment
SET site_code = :site_code,
site_id = :site_id,
system_name = :system_name,
ip_add = INET_ATON(:ip_add),
mcast = INET_ATON(:mcast),
sys_loc = :sys_loc,
systype = :systype,
itamname = :itamname,
dimetis = :dimetis,
DNS = :DNS
WHERE id = :id
";
//prepare query for excecution
$database->query($query);
//bind the parameters
$database->bind(':site_code', $site_code);
$database->bind(':site_id', $site_id);
$database->bind(':system_name', $system_name);
$database->bind(':ip_add', $ip_add);
$database->bind(':mcast', $multicast);
$database->bind(':sys_loc', $sys_loc);
$database->bind(':systype', $systype);
$database->bind(':itamname', $itamname);
$database->bind(':dimetis', $_POST['dimetis']);
$database->bind(':DNS', $_POST['DNS']);
$database->bind(':id', $_POST['id']);
// Execute the query
$database->execute();
echo "Record was updated.";
}
}
Я думал, что я может выполнять поиск по всем записям, которые в настоящее время редактируются. Как мне это сделать? Есть ли лучший способ проверить, уникален ли IP addrss при редактировании записи?
Так что же это вы просите здесь? –
Я понял это, поскольку я писал вопрос об этом, исключив текущую запись из обновления. Я оставил его, поскольку это может быть полезно кому-то другому. Наверное, я спрашиваю, является ли это лучшим способом или есть другой/лучший способ? – Nigel
Комментарий, а не на ваш вопрос, но что с ним делать. Вы можете ответить на свой вопрос. Выньте ответ из своего вопроса выше и вставьте его в ответ. Таким образом, ясно, что на этот вопрос был дан ответ, вместо того, чтобы оставить его непонятным, что вы хотите. –