Как мне обновить mysql дБ, просматривая массив значений? - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь обновить столбцы в моей таблице базы данных, используя метод mysql UPDATE. Мне нужно проверить, что значения, которые я добавляю, не равны "no_Change", чтобы я знал, стоит ли их менять. Чтобы сэкономить время, я создал php массив переменных для редактирования: $ edit_Array. Я перебираю массив и проверяю, что переменные не равны "no_Change"

for ($i=0; $i < count($edit_Array)-1; $i++){
    if ($edit_Array[$i] !== "no_Change"){
      $sql = "UPDATE $dbtable SET $column_Name_Array[$i]=$edit_Array[$i] WHERE name_ID = $name_ID_Edit";
      if ($conn->query($sql) === TRUE) {
    }   
  }

Это будет работать нормально, если все переменные были одного типа. К сожалению, в моих данных есть некоторые строки, и при их обнаружении они не будут обновлены в моей базе данных.

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

$sql = "UPDATE $dbtable SET
  name='$name'
WHERE trap_ID = $trap_ID_Edit";
  if ($conn->query($sql2) === TRUE) {
  }

будет работать, однако

 $sql = "UPDATE $dbtable SET
  name='$name[0]'
WHERE trap_ID = $trap_ID_Edit";
  if ($conn->query($sql2) === TRUE) {
  }

не будет работать. это потому, что квадратные скобки каким-то образом оказываются в кавычках.

Должен быть лучший способ, чем я.

пс. Я знаю, что mysql небезопасен из-за инъекций sql, однако для этого конкретного проекта он предназначен для школы, и мы не обязаны пытаться предотвратить это по какой-то причине, и мы должны использовать mysql.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...