Как проверить, существуют ли данные в столбце, и проверить, чтобы второй столбец этой строки совпадал с определенным числом
Каждый!
У меня проблемы с созданием оператора MySQL.
Пример:
У меня есть один столбец с именем "keys", а другой столбец с именем "isUsed", и столбец "keys" состоит из множества различных ключей в этом формате: xxxx-xxxx-xxxx, и я хочу проверить, использовался ли этот ключ уже или нет.
Это формат таблицы:
Key | isUsed
xxxx-xxxx-xxxx | 0
Я уже сделал это, поэтому он проверяет, существует ли ключ с помощью этого кода:
$arrExistKey = mysqli_query($resDBCon, "SELECT Key FROM keys WHERE Key = '$strKey'");
$intKeys = mysqli_num_rows($arrExistKey);
if ($intKeys != 1) {
sendError('The beta-key does not exist!');
}
Итак, я проверил, существует ли ключ, теперь я просто пытаюсь выяснить, как проверить, использовался ли он уже.
Если кто-нибудь может мне помочь, это было бы здорово! Спасибо.
4 ответа
Как насчет просто кодирования логики в SQL?
$arrExistKey = mysqli_query($resDBCon, "SELECT Key FROM keys WHERE Key = '$strKey' AND isused = 1");
Это может быть то, что вам нужно:
// SELECT THE KEY YOU NEED
$result = mysqli_query($resDBCon, "SELECT * FROM keys WHERE Key = '$strKey'");
// LOOP ALL RESULTS AND ENTERING IN THE WHILE MEANS THAT THE KEY EXISTS
while($row = mysqli_fetch_array($result) {
// HERE YOU CHECK IF KEY WAS USED
if($row['isUsed'] == 1)
echo 'Key was used';
}
Одним из решений будет изменение вашего оператора SQL на
"SELECT Key, isUsed FROM keys WHERE Key = '$strKey'"
Теперь вы можете проверить, существует ли ключ, используя ваше решение, а затем mysqli_fetch_array
функция для получения значения для isUsed
,
Также, пожалуйста, проверьте, если $strKey
не содержит недопустимых символов перед вставкой в оператор SQL. В зависимости от остальной части вашего кода, он может быть уязвим для внедрения SQL.
Удачи в реализации!
Вот что вам нужно!
<?php
$arrExistKey = mysqli_query($resDBCon, "SELECT Key FROM keys WHERE Key = '$strKey'");
$intKeys = mysqli_num_rows($arrExistKey);
$sql = mysqli_query($resDBCon, "SELECT * FROM keys WHERE Key = '$strKey'");
while ($row = mysql_fetch_array($sql)) {
$used = $row['isUsed'];
}
if ($intKeys != 1) {
sendError('The beta-key does not exist!');
} else {
if ($used == 1) {
echo "the key has already been used recently!";
} else {
//action
}
}
?>
Удачи!