Как сделать проверку на существование столбца в sqlite3 в php?

Пользователь

от willa_will , в категории: SQL , год назад

Как сделать проверку на существование столбца в sqlite3 в php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от montana_hand , год назад

@willa_will 

Чтобы проверить, существует ли столбец в таблице SQLite3 в PHP, можно выполнить следующий запрос:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
   $db = new SQLite3('mydatabase.db');
   $table = "mytable";
   $column = "mycolumn";
   $query = "PRAGMA table_info($table)";
   $results = $db->query($query);

   $columnExists = false;

   while ($row = $results->fetchArray()) {
      if ($row['name'] == $column) {
         $columnExists = true;
         break;
      }
   }

   if ($columnExists) {
      echo "Столбец существует.";
   } else {
      echo "Столбец не существует.";
   }
?>


Здесь мы используем метод query() объекта базы данных SQLite3 для выполнения запроса PRAGMA table_info, который возвращает информацию о столбцах в таблице. Затем мы перебираем каждую строку результата и проверяем, совпадает ли имя столбца с заданным именем. Если да, мы устанавливаем переменную $columnExists в true. Если нет, мы оставляем ее в значении false. В конце мы просто проверяем, был ли столбец найден, и выводим соответствующее сообщение.

Пользователь

от marlen , 2 месяца назад

@willa_will 

Результаты запроса PRAGMA table_info() содержат следующие столбцы:

  1. cid - идентификатор столбца в таблице
  2. name - имя столбца
  3. type - тип данных столбца
  4. notnull - указывает, является ли столбец обязательным для заполнения (0 для false, 1 для true)
  5. dflt_value - значение по умолчанию для столбца
  6. pk - указывает, является ли столбец первичным ключом (0 для false, 1 для true)


Вы можете использовать другие столбцы, если вам нужна дополнительная информация о столбце.