Почему запрос SQL имел бы “где 1 = 1” [дубликат]

В версии jQuery в вашем событии click у вас есть функция togglePass (), но вы никогда не запускаете ее. Так как вы делаете в другой версии.

// For triggering you function
$(".pass").on("click", ".typcn-eye", togglePass);

// Function outside your click event
function togglePass() {
    // Toggle active class on every click
    $(this).toggleClass("active");
    // Get the type of the prev element 
    let type = $(this).prev().attr("type"),
        changeTo = type === "password" ? "text" : "password";

    // Change type attr of that element
    $(this).prev().attr("type", changeTo);
}
.box {
    display: flex;
    flex-direction: column;
    align-items: start;
}

.pass {
    display: flex;
    align-items: center;
    border: 1px solid;
}

.box input[type="text"],
.box input[type="password"] {
    display: block;
    margin: 20px auto;
    background: #ececec;
    border: 0;
    border-radius: 5px;
    padding: 14px 10px;
    width: 220px;
    outline: none;
    color: #565f79;
}

.typcn {
    color: #3b476b;
    font-size: 22px;
    cursor: pointer;
}

.typcn.active {
    color: #7f60eb;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/typicons/2.0.9/typicons.min.css" rel="stylesheet" />
<form class="box">
    <div class="pass">
        <input class="pwd" type="password" name="password" placeholder="Passsword" id="pwd" autocomplete="off">
        <i class="typcn typcn-eye" id="eye"></i>
    </div>
    <div class="pass">
        <input class="pwd" type="password" name="password" placeholder="Passsword" id="pwd2" autocomplete="off">
        <i class="typcn typcn-eye" id="eye2"></i>
    </div>
</form>

8
задан Community 23 May 2017 в 12:19
поделиться

7 ответов

Это были динамические запросы? Иногда это полезно при создании динамических запросов на основе параметров, которые являются дополнительными.

16
ответ дан 5 December 2019 в 04:36
поделиться

Если Вы автоматически хотите добавить ограничения на свой запрос, он делает Ваше живое более легкое:

string sql = "SELECT * FROM table WHERE 1=1";

if (someflag) {
  sql += " AND valid = 1";
}

if (someotherflag) {
  sql += " AND special = 1";
}

execute(sql);

Без WHERE 1 = 1 Вы были бы в каждом случае, должны проверить, является ли это первое ограничение, Вы добавляете (и затем используйте WHERE ...) или если Вы уже добавили некоторое другое ограничение прежде (и затем добавьте AND ...).

11
ответ дан 5 December 2019 в 04:36
поделиться

Если Вы динамично создаете, где пункт, можно быть немного ленивыми и предположить, что каждый пункт, который Вы добавляете, может быть снабжен префиксом "И", например.

$str="select foo from bar where 1=1";

if ($filter1)
{
    $str.=" and col1='frobozz'";
}
10
ответ дан 5 December 2019 в 04:36
поделиться

Я использую это для динамического, где пункты, когда я делаю некоторое ленивое программирование и не хочу всегда проверять, пуст ли пункт, чтобы определить, нужно ли мне теперь "И" между моими динамическими пунктами.

6
ответ дан 5 December 2019 в 04:36
поделиться

Это действительно только имеет смысл в динамических запросах. Если Вы добавляете параметры в цикле вместо того, чтобы иметь необходимость проверить, существует ли, ГДЕ уже можно просто добавить И Столбец = Значение каждый раз.

4
ответ дан 5 December 2019 в 04:36
поделиться

Я видел два основания для этого, когда Вы всегда хотите истинный результат, или когда там будет произвольным числом "и условие = значение", добавленное к оператору

1
ответ дан 5 December 2019 в 04:36
поделиться

Это очень интересно... Оператор Where содержит только 1=1? Я часто видел это в попытках Внедрения SQL, в которых оператор Where установлен на xyz="something" OR 1=1; как средство всегда возвратить список результатов.

Можно ли сказать нам больше о том, что продолжает этот запрос, таким образом, мы смогли отвечать на вопрос лучше?

  • Nicholas
0
ответ дан 5 December 2019 в 04:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: