MySQL автоинкремент + автоматическая настройка идентификатора путем динамического удаления содержимого таблицы через PHP?

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

private Hashtable<InputObject,  OutputObject> table = new Hashtable<InputObject, OutputObject>();
table.put(input1, ouput1);
table.put(input2, ouput2);

...

when(mockObject.method(any(InputObject.class))).thenAnswer(
       new Answer<OutputObject>()
       {
           @Override
           public OutputObject answer(final InvocationOnMock invocation) throws Throwable
           {
               InputObject input = (InputObject) invocation.getArguments()[0];
               if (table.containsKey(input))
               {
                   return table.get(input);
               }
               else
               {
                   return null; // alternatively, you could throw an exception
               }
           }
       }
       );
0
задан Anthony Rutledge 15 January 2019 в 16:42
поделиться

2 ответа

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

if(isset(

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

if(isset(

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

[111]POST["del"])) { $del =

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

[111]POST["del"]; $res = mysqli_query($con, $sql); $sql2 = "DELETE FROM `work` LIMIT 1 OFFSET ".array_search($del, mysqli_fetch_assoc($res)); mysqli_query($con, $sql2); header("Refresh:0"); }
POST["del"])) { $del =

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

if(isset(

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

[111]POST["del"])) { $del =

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

[111]POST["del"]; $res = mysqli_query($con, $sql); $sql2 = "DELETE FROM `work` LIMIT 1 OFFSET ".array_search($del, mysqli_fetch_assoc($res)); mysqli_query($con, $sql2); header("Refresh:0"); }
POST["del"]; $res = mysqli_query($con, $sql); $sql2 = "DELETE FROM `work` WHERE `work`.`id` = $del"; mysqli_query($con, $sql2); header("Refresh:0"); }

на

if(isset(

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

[111]POST["del"])) { $del =

Ключом списка является 'th' в базе данных, поэтому просто устанавливаются ограничения

Заменить

[110]

на

[111]POST["del"]; $res = mysqli_query($con, $sql); $sql2 = "DELETE FROM `work` LIMIT 1 OFFSET ".array_search($del, mysqli_fetch_assoc($res)); mysqli_query($con, $sql2); header("Refresh:0"); }
0
ответ дан Msu Arven 15 January 2019 в 16:42
поделиться

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

<!DOCTYPE HTML>
<html lang="de">

<head>
  <meta charset="utf-8">
  <title>ToDo-APP</title>
  <link rel="stylesheet" href="css/Lil-Helper.css">
  <link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
  <link rel="stylesheet" href="css/webfonts/all.css">
  <link rel="stylesheet" href="css/own.css">
  <style>
    #frm-tasks button
    {
      padding: 0 18px;
    }
  </style>
</head>

<body>

<?php
  mysqli_report(MYSQLI_REPORT_STRICT);
  try
  {
    $con = new mysqli('localhost', 'testuser', 'testpasswd', 'testdb');

    $action = 

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST['action'] ?? 'list'; if(!empty(

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST["text"])) { $eingabe =

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST["text"]; try { $stmt = $con->prepare('INSERT INTO work(text) VALUES(?)'); $stmt->bind_param('s',

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST["text"]); $stmt->execute(); } catch (mysqli_sql_exception $e) { $msg = $e->getMessage(); echo "<div>Error processing statement: $msg;</div>"; } } if('del' === $action && isset(

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST['rows']) && is_array(

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST['rows'])) { try{ $stmt = $con->prepare('DELETE FROM `work` WHERE `work`.`id` = ?'); $stmt->bind_param('i', $row); foreach (

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST['rows'] as $row) { $stmt->execute(); if($e = $stmt->error) echo "<div>DB Error: $e</div>"; } } catch (mysqli_sql_exception $e) { $msg = $e->getMessage(); echo "<div>Error processing statement: $msg;</div>"; } } ?> <header class="lil-menu lil-flex lil-flex-center align-center"> <a href="index.html" class="lil-brand"> <h3>To-Do</h3> </a> <a class="lil-menu-item currentLink" href="index.html">ToDo</a> <a class="lil-menu-item" href="#archive">Archiv</a> <a class="lil-menu-item" href="#Sprachen">Sprachen</a> </header> <div class="main"> <div class="lil-box"> <h3 class="lil-font-rot lil-big-font lil-space lil-font-style" style="font-size: 4rem;">ToDo</h3> <div class="lil-box"> <!--form action="index.php" method="post"--> <form id="frm-tasks" action="" method="post"> <input class="lil-input" name="text" type="text"> <button type="submit" class="lil-button-green" name="action" value="add">Hinzufügen</button> <?php try { $res = $con->query('SELECT id, text FROM work'); if(0 < $res->num_rows) { ?> <table> <thead> <tr> <th></th><th>ID</th> <th>Aufgabe</th> </tr> </thead> <tbody> <?php while($dsatz = mysqli_fetch_object($res)) { ?> <tr> <td><input type="checkbox" name="rows[]" value="<?php echo $dsatz->id;?>"></td><td><?php echo $dsatz->id;?></td> <td><?php echo $dsatz->text;?></td> </tr> <?php } ?> </tbody> </table> <button type="submit" class="lil-button-red lil-button-small" name="action" value="del">Löschen</button> <?php } } catch (mysqli_sql_exception $e) { $msg = $e->getMessage(); echo "<div>Error processing statement: $e->msg;</div>"; } ?> </form> </div> </div> </div> <!-- not needed atm script src="js/jquery-3.3.1.min.js"></script--> <h2>POST</h2> <?php var_dump(

Как обсуждалось в комментарии, у вас может быть несколько флажков, формирующих параметр массива: <input name="theName[1]"> с явным ключом и name="theName[]" с неявным ключом.

Более того, вы должны использовать подготовленные операторы для предотвращения атак SQL-инъекций. Представьте, что злоумышленник отправляет запрос с одинарной кавычкой ' в поле, то есть он завершает разделитель строк SQL и добавляет произвольный код SQL. Подготовленные операторы используют заполнители, а параметры отправляются отдельно.

Вы также должны обрабатывать ошибки. В приведенном ниже коде ошибки выводятся в виде HTML, однако вы должны определить свою собственную функцию ведения журнала, а не просто echo в поток. Это может выводить HTML на серверы разработки, но записывать на диск на производственных серверах.

Это рабочий пример, протестированный на PHP7.3 с MariaDB 10:

[110]POST); } catch (mysqli_sql_exception $e) { $msg = $e->getMessage(); echo "<div>Error connecting DB: $msg;</div>"; } ?> </body> </html>
0
ответ дан Quasimodo's clone 15 January 2019 в 16:42
поделиться
Другие вопросы по тегам:

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