rus eng

Содержание раздела

Раздел 1: Разработка сайтов. Общие вопросы.

Статья 1. Кому не нужны сайты.

Статья 2. Кому и зачем нужны сайты.

Статья 3. Идеальный Заказчик и идеальный Разработчик.

Статья 4. Стоимость сайта. Мифы и реалии сегодняшнего дня.

Статья 5. Дешевый или интересный?

Статья 6. Полезные сервисы интернет сайтов.

Статья 7. Когда и почему умирают сайты?

Статья 8. Разработка сайтов и перспективы нового поколения.

Статья 9. ИТ-компетенции современного бизнесмена.

Раздел 2: Разработка сайтов. Организационные вопросы.

Взаимодействие Заказчика со студией

Условия технической поддержки сайтов

Размещение сайтов (условия хостинга)

Сервис Whois (узнаем владельца доменов)

Оплата работ (реквизиты исполнителя)

Сколько стоит интернет магазин?

Раздел 3: Разработка сайтов. Технологические вопросы.

Как назначить иконку сайту?

Пропал доступ к системе управления сайтом

Чем отличается URL от URI, URN, URC?

Когда следует использовать технологию SSI?

Отличия между форматами HTML и XML

Наш сайт находится по другому имени

Может ли сайт обойтись без БД?

Типы данных MySQL

Рисование во флеше

Как узнать кто является владельцем сайта?

Проверка корректности email

Округление чисел в Perl

PHP сессии при создании Интернет магазина

Проверка корректности email адреса в PHP

Преобразование текста в файл GIF формата в PHP

Динамические и статические методы PHP

Передача файлов из HTML формы

Диалог сохранения при выгрузке файлов из PHP сценария

Замена специальных тегов средствами Perl

Какой счетчик выбрать для сайта?

Страницы:
1
23456
ВАШ ВОПРОС:

Подскажите плиз!!! Данные анкеты через HTML-форму поступают в PHP сценарий, который успешно подключается к базе MySQL. Однако данные почему-то туда не вносятся, хотя команда INSERT написана правильно!

Студия "Жанр" - разработка корпоративных сайтов (Пермь). ОТВЕТ:

Разумеется, данные вносятся не в Базу Данных, а конкретную таблицу БД. Следовательно, проблема, скорее всего, состоит в неоответсвии типов вставляемых значений (а они приходят из формы анкеты) и полей ранее созданной таблицы. Проблема также может быть вызвана попыткой вставки незаполненных данных анкеты (пустых текствых полей) в поля таблицы, в которых недопустимы NULL значения.

 

В случае если типы данных совпадают, то возможно что проблема связана с переполнением  полей таблицы поступающими значениями, длина которых превышает размерность полей таблицы БД.

 

Пожалуйста, не забывайте про основные типы и языковые конструкции MySQL:

 

 

=== Числовые типы данных MySQL ===

 

где M - ширина поля при отображении (не более 255). D - число знаков после запятой. P - точность представления. Если число занимает меньше M разрядов, то оно дополняется слева пробелами. Если указано ZEROFILL то нулями. Если используется ZEROFILL для целых, то автоматически добавляется UNSIGNED. Все вычисляется с точностью 63 бита или переводом в DOUBLE.

 

   TINYINT[(M)] [UNSIGNED] [ZEROFILL] (1 байт)
   SMALLINT[(M)] [UNSIGNED] [ZEROFILL] (2 байта)
   MEDIUMINT[(M)] [UNSIGNED] [ZEROFILL] (3 байта)
   INT[(M)] [UNSIGNED[ [ZEROFILL] (4 байта)
   INTEGER[(M)] [UNSIGNED] [ZEROFILL] (4 байта)
   BIGINT[(M)] [UNSIGNED] [ZEROFILL] (8 байт)
   FLOAT[(p)] [UNSIGNED] [ZEROFILL] (p от 0 до 24 или от 25 до 53)
   FLOAT[(M,D)] [UNSIGNED] [ZEROFILL] (4 байта)
   DOUBLE [PRECISION][(M,D)] [UNSIGNED] [ZEROFILL]
   REAL[(M,D)] [UNSIGNED] [ZEROFILL] (синоним DOUBLE)
   DECIMAL[(M[,D])] [UNSIGNED] [ZEROFILL] - десятичное вещественное число

   DEC, NUMERIC, FIXED - синоним DECIMAL
   SERIAL - аналог BIGINT UNSIGNED NOT NULL AUTO_INCREMENT
   BOOLEAN - аналогс TINYINT (1); 0 - false, 1 - true
   BIT [(M)] - строка бит от 1 до 64

 

 

=== Типы дата и время ===

 

Неверные значения преобразуются в "нулевое" - 0000-00-00 (режим NO_ZERO_DATE);

 

   DATE (дата от '1000-01-01' до '9999-12-31'; 3 байта)
   DATETIME (время от '1000-01-01 00:00:00' до '9999-12-31 23:59:59'; 8 байт)
   TIMESTAMP[(M)] (время от 19700101000000 до 2037 года; 4 байта)
       14 (по умолчанию) - YYYYMMDDHHMMSS
       12 - YYMMDDHHMMSS
       8 - YYYYMMDD
       6 - YYMMDD
   TIME (интервал времени от -838:59:59 до 838:59:59; выводится как HH:MM:SS)  можно

   YEAR[(4|2)]

 

 

=== Текстовые типы данных ======

 

Максимальная длина строки таблицы и пакета протокола 16 МБ. ORDER BY и GROUP BY работают только с объектами фиксированной длины.

   CHAR(M) [BINARY | ASCII | UNICODE] (поле фиксированной длины от 1 до 255)
   NCHAR - аналог NATIONAL CHAR
   CHARACTER - аналог CHAR
   CHAR BYTE - аналог CHAR BINARY
   VARCHAR(M) [BINARY] - строка переменной длины; M до 65532 в версии MySQL 5
   CHARACTER VARYING - аналог VARCHAR
   TINYBLOB (BLOB макс. длины 255)
   TINYTEXT (TEXT макс. длины 255)
   BLOB (BLOB макс. длины 65535)
   TEXT (TEXT макс. длины 65535)
   MEDIUMBLOB (BLOB макс. длины 2^24-1)
   MEDIUMTEXT (TEXT макс. длины 2^24-1)
   LONGBLOB (BLOB макс. длины 2^32-1, в действительности - 16МБ)
   LONGTEXT (TEXT макс. длины 2^32-1)
   LONG VARCHAR - аналог MEDIUMTEXT
   BINARY(M) (последовательность байт фиксированной длины)
   VARBINARY(M) (последовательность байт переменной длины; не больше M)

 

 

=== Функции и базовые синтаксические конструкции ===

 

- конструкции группировки функций задаются с помощью круглых скобок
- арифметические действия: +, -, *, /
- битовые функции: |, &, <<, >>, ~, BIT_COUNT()
- логические конструкции: !, ||, && (возвращают 1, 0, или NULL)
- сравнение:

      =, <>, !=, <=, <, >=, >
      <=> (сравнение, позволяющее сравнивать NULL)
      expr IS NULL, expr IS NOT NULL
      expr BETWEEN min AND max
      expr IN (значение1,...)
      expr NOT IN (значение1,...)
      ISNULL()
      COALESCE(список) - возвращает первый ненулевой элемент списка
      INTERVAL(N,N1,N2,N3,...) - возвращает № интервала: 1, если N < N1; 2 если N < N2...

- сравнение текста (чувствительность к регистру)

      expr LIKE шаблон [ESCAPE 'escape-символ']

         % - любое количество любых символов;

         _ - ровно один символ;

         \ - escape-символ по умолчанию (чтобы найти конец строки '\n' надо задать '\\n'); 
      expr NOT LIKE шаблон
      expr REGEXP шаблон (сравнение с расширенным регулярным выражением)
      expr RLIKE шаблон (сравнение с расширенным регулярным выражением)
      expr NOT REGEXP шаблон 
      expr NOT RLIKE шаблон
- STRCMP(expr1,expr2) (арифметическое сравнение строковых выражений:

       -1 если первая строка меньше, 0 если равны, 1 если первая строка больше)
- MATCH (колонка1,колонка2,...) AGAINST (expr)

       возвращает меру релевантности/соответствия (необходим FULLTEXT индекс)

- условные выражения
      IFNULL(expr1,expr2) (если expr1 есть NULL, то возвращает expr2, иначе expr1)
      NULLIF(expr1,expr2) (если равны, то возвращает NULL, иначе - expr1)
      IF(expr1,expr2,expr3) (если expr1, то возвращает expr2, иначе expr3)
      CASE значение1

           WHEN [значение2] THEN результат1

          [WHEN [значение3] THEN результат2 ...]

          [ELSE результатn]

      END
      CASE

          WHEN [условие1] THEN результат1

         [WHEN [условие2] THEN результат2 ...]

         [ELSE результатn]

      END

- математические функции (в случае ошибки возвращают NULL) 
      ABS(X), SIGN(X), MOD(N,M),

      FLOOR(X), CEILING(X), ROUND(X), ROUND(X,знаков_после_точки),

      EXP(X), LOG(X), LOG10(X), POWER(X,Y), SQRT(X),

      PI(), COS(радиан), SIN(радиан), TAN(радиан),

      ACOS(X), ASIN(X), ATAN(X), ATAN2(Y,X), COT(X),

      RAND(), RAND(граница), LEAST(X,Y,...), GREATEST(X,Y,...),

      DEGREES(радианы), RADIANS(градусы), TRUNCATE(X,знаков_после_точки)

- функции обработки строк (позиции символов нумеруются с 1)

      ASCII(str) - ASCII-код первого символа строки
      ORD(str) - ASCII-код с учетом мультибайтных символов
      CONV(N,основание1,основание2) - преобразование N в разные системы счисления
      BIN(N) - аналог CONV(N,10,2)
      OCT(N) - аналог CONV(N,10,8)
      HEX(N) - аналогс CONV(N,10,16)
      CHAR(целое,...) - возвращает строку из символов по их кодам
      CONCAT(str1,str2,...) - сцепляет строки
      CONCAT_WS(разделитель,str1,str2,...) - сцепление с разделителем
      LENGTH(str), OCTET_LENGTH(str)
      CHAR_LENGTH(str), CHARACTER_LENGTH(str) - с учетом двухбайтного представления
      LOCATE(подстрока,строка[,нач_позиция]) - поиск подстроки в строке

      POSITION(подстрока IN строка)

      INSTR(строка,подстрока) - с учетом двухбайтных символов
      LPAD(строка,длина,строка_заполнитель) - нарастить строку слева до длины
      RPAD(строка,длина,строка-заполнитель) - нарастить строку справа до длины
      LEFT(строка,N) - получить N символов слева
      RIGHT(строка,N) - получить N символов справа
      SUBSTRING(строка,начальная-позиция[,длина])

      SUBSTRING(строка FROM начальная-позиция[ FOR длина])

      MID(строка,начальная-позиция,длина)

      SUBSTRING_INDEX(строка,разд,N) - до указанного числа разделителей
      LTRIM(строка) - удаление пробелов слева
      RTRIM(строка) - удаление пробелов справа
      TRIM(строка) - удаляются пробелы с обоих сторон
      SPACE(число) - выбрать указанное число пробелов
      REPLACE(строка,что,на_что) - замена внутри строки
      REPEAT(str,N) - повтор строки
      REVERSE(str) - перестановка символов в обратном порядке
      INSERT(строка,поз,длина,новая-строка) - замена фрагментов строк
      ELT(N,str1,str2,...) - возвращает N-ю строку
      FIELD(str,str1,str2,str3,...) - возвращает номер строки str в списке str1,...
      FIND_IN_SET(строка,список) - номер строки в списке (строки через запятую)
      MAKE_SET(биты,строка1,строка2,...) - сцепляет строки в список через запятую
      LCASE(строка) - преобразование к нижнему регистру
      LOWER(строка) - преобразование к нижнему регистру
      UCASE(строка) - преобразование к верхнему регистру 
      UPPER(строка) - преобразование к верхнему регистру
      LOAD_FILE(полное_имя_файла) - содержимое файла возвращается как строка

- работа со временем и датами

      DAYOFWEEK(дата) - воскресенье: 1, понедельник: 2 и т.д.
      WEEKDAY(дата) - понедельник: 0, вторник: 1 и т.д.
      DAYOFMONTH(дата)
      DAYOFYEAR(дата)
      MONTH(дата)
      DAYNAME(дата) - в формате: 'Thursday'
      MONTHNAME(дата) - в формате 'February'
      QUARTER(дата)
      WEEK(дата) - от 0 до 53; (первый день недели - воскресенье)
      WEEK(дата,нач_недели) - если нач_недели = 1, то неделя с понедельника
      YEAR(дата)
      YEARWEEK(дата[,нач_недели]) - год и номер недели
      HOUR(время)
      MINUTE(время)
      SECOND(время)
      PERIOD_ADD(P,N) - добавить N месяцев к периоду (P в формате YYYYMM)
      PERIOD_DIFF(P1,P2) - число месяцев между периодами

      DATE_ADD(дата,INTERVAL) либо ADDDATE(дата,INTERVAL)

         единицы измерения интервала:

         SECOND,MINUTE,HOUR,DAY
         MONTH ('1998-01-30' + Interval 1 month => '1998-02-28')
         YEAR, MINUTE_SECOND ("минут:секунд"), HOUR_MINUTE ("часов:минут")
         DAY_HOUR ("дней часов"), YEAR_MONTH ("лет_месяцев")
         HOUR_SECOND ("часов:минут:секунд")
         DAY_MINUTE ("дней часов:минут")
         DAY_SECUND ("дней часов:минут:секунд")

      DATE_SUB(дата,INTERVAL) либо SUBDATE(дата,INTERVAL)
      EXTRACT(ед_изм FROM дата) - возвращает интервал указанного типа
      TO_DAYS(дата) - возвращает номер дня с 0-го года 
      FROM_DAYS(N) - обратная функция к TO_DAYS()
      DATE_FORMAT(дата,формат) - преобразует дату в соответствии с форматом

         %M - полное английское имя месяца;

         %W - полное английское имя дня недели;

         %D - день месяца с английским суффиксом;

         %c - номер месяца от 1 до 12;

         %h - час от 01 до 12;

         %i - минуты от 00 до 59
      TIME_FORMAT(время,формат) - аналог DATE_FORMAT
      CURDATE() - '1999-11-25' или 19991125 
      CURRENT_DATE - синоним CURDATE()
      CURTIME() - '22:55:16' или 225516 
      CURRENT_TIME - синоним CURTIME()
      NOW() либо SYSDATE() либо CURRENT_TIMESTAMP - '1991-11-25 21:51:16' или текст
      UNIX_TIMESTAMP([дата]) - число секунд с 1 января 1970 GMT
      FROM_UNIXTIME(timestamp[,формат]) - обратная к UNIX_TIMESTAMP()
      SEC_TO_TIME(секунд) - преобразует секунды в часы:минуты:секунды
      TIME_TO_SEC(время) - преобразует часы:минуты:секунды в секунды

- разные функции
      DATABASE() - возвращает имя текущей БД
      USER() или SYSTEM_USER() или SESION_USER() - имя пользователя user1@localhost

      PASSWORD(строка) - перевод пароля во внутренний вид
      ENCRYPT(строка[,ключ]) - шифрование пароля
      ENCODE(строка,пароль) - шифрование пароля
      DECODE(строка_шифрования,пароль) - расшифрование пароля
      MD5(строка)
      LAST_INSERT_ID([выражение]) - код последней вставленной записи
      FORMAT(X,D) - вывод отформатированного числа, D - число цифр после точки
      VERSION()
      CONNECTION_ID()
      GET_LOCK(имя_блокировки,timeout-секунд)

         1 при успехе, 0 - при timeout, NULL - при ошибке;

         освобождается при RELEASE_LOCK(), новом GET_LOCK()
      RELEASE_LOCK(имя_длокировки) 

         1 при успехе; 0 - если блокировка установлена другим потоком; NULL - ошибка
      INET_NTOA(выражение) - преобразование IP в "точечный" формат
      INET_ATON(выражение) - преобразование IP в целое с сетевым порядком байт
      MASTER_POS_WAIT(имя_журнала,позиция) - синхроницация репликаций

- конструкции агрегирования данных

      COUNT(выражение) - число не-NULL значений в группе
      COUNT(*) - количество всех извлеченных строк
      COUNT(DISTINCT выражение) - число уникальных не-NULL значений
      AVG(выражение) - среднее
      MIN(выражение), MAX(выражение) - если нет, то NULL
      SUM(выражение) - сумма значений (или NULL)
      STD(выражение) или STDDEV(выражение) - стандартное отклонение
      BIT_OR(выражение) - побитовое или
      BIT_AND(выражение) - побитовое И

 

 

=== Резервное копирование данных MySQL ===

 

Каждая таблица БД MySQL представляет собой отдельный файл. Поэтому резервирование данных осуществляется обычным копированием файлов таблиц БД.

 

Для выполнения резервного копирования необходимо остановить сервер MySQL или заблокировать запись в таблицу (командой LOCK TABLES) и сбросить связанные с таблицами индексы (директива FLUSH TABLES). Разумеется, после выполнения резервного копирования таблицу необходимо разблокировать (команда UNLOCK TABLES).

 

Для выполнения резервирования с помощью команд SQL достаточно воспользоваться конструкцией SELECT INTO или директивой BACKUP TABLE.

 

Полное резервное копирование БД можно выполнить с помощью утилиты mysqldump или с помощью веб-приложения phpMyAdmin (последнее настоятельно рекомендуется). phpMyAdmin позволяет администрировать БД MySQL: создавать, удалять и редактировать БД, таблицы, работать с командной строкой, генерировать резервную копию БД и восстанавливать БД из ранее созданной резервной копии. Эта программа входит в типовой инструментальный набор планов хостинга с поддержкой MySQL.

 









Современный сайт не роскошь, а средство продвижения бизнеса

Создание сайта

Стоимость сайта

Сайт визитка

от 24 000 руб.

Интернет витрина

от 35 000 руб.

Интернет магазин

от 40 000 руб.

Виртуальные туры

по договоренности

Оплата по факту сдачи!

Раскрутка сайта

Продвижение сайтов

Комплексная реклама

10000 руб. (за 1 мес.)

Бизнес раскрутка

от 25000 руб.

за рекламную компанию

стоимость зависит

от тематической

популярности сайта

Поддержка сайта

Действующие тарифы поддержки сайтов

Стандартный

1000 руб. в мес.

Оперативный

от 2500 руб. в мес.

Подробнее об услуге...
Студия веб-дизайна «Жанр»™, Пермь, 2018