Не записывает данные

после создания таблицы не записывает значение. Можете помочь?

$queryCreateTable = mysqli_query($link, "CREATE TABLE `user_test` (
        `id` int NOT NULL AUTO_INCREMENT,
        `num` int DEFAULT NULL,
        `oper` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        `region_id` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        `region` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        `city_id` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        `city` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        `area_id` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        `area` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        `gender` varchar(69) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
        PRIMARY KEY (`id`),
        UNIQUE KEY `num` (`num`)
      ) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;");
      $queryWriting = mysqli_query($link, "UPDATE user_test SET num=111111111 ");

Ответы (1 шт):

Автор решения: Сергей Филонов

Код для SQL, вам надо его обернуть в PHP, но это как-нибудь сами. Есть несколько замечаний, но обо все по порядку. Пишу без студии, могут быть ошибки.

Создание таблицы примерно так:

  CREATE TABLE user_test (
      id int NOT NULL AUTO_INCREMENT,
      num int NOT NULL,
      oper varchar(69) NULL,
      region_id varchar(69) NULL DEFAULT NULL,
      region varchar(69) NULL DEFAULT NULL,
      city_id varchar(69) NULL DEFAULT NULL,
      city varchar(69) NULL DEFAULT NULL,
      area_id varchar(69) NULL,
      area varchar(69) NULL,
      gender varchar(69) NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `num` (`num`)
)

Вставка

INSERT INTO user_test ('num') VALUES (10)

Обновление

UPDATE user_test SET 'num' = 20 WHERE id = 1

Замечания:

  • Почему region_id, city_id, area_id в varchar? Скорее всего в соответствующих таблицах id будет INT, поэтому стоит использовать INT.
  • Зачем под gender - varchar(69)? 69 будут явно излишне, хотя не критично, но все же.
  • Почему num DEFAULT NULL если он уникальный?
→ Ссылка