Архив рубрики: Базы данных

Различные СУБД, администрирование, программирование

Поиск с подсказками на jQuery + PHP

autocomplete В этой статье я кратко опишу свой опыт в реализации поиска в базе MySQL с автодополнением (это когда по мере набирания текста, во всплывающем окошке показываются похожие результаты, такое можно наблюдать при наборе текста в поисковиках и уже во многих сайтах). Это очень удобно, так как при поиске товара или чего-либо еще на сайте, рядом со строкой поиска появляется окно с уже найденными вариантами написания и пользователю уже легче ориентироваться, а так же меньше надо набирать текст.
Читать далее Поиск с подсказками на jQuery + PHP

Как исправить поврежденную базу MS SQL (Suspect Mode)

Так случилось, что MS SQL база перешла в «подозрительный» режим (Suspect mode). Никакие манипуляции с базой в таком режиме сделать невозможно, даже отключить. Помогла следующая серия команд в management Studio.
Для начала необходимо перевести базу данных в режим EMERGENCY:

EXEC sp_resetstatus 'yourDBname'
GO
ALTER DATABASE yourDBname SET EMERGENCY
GO

Далее появляется выполнять тестирование и исправление базы:

DBCC checkdb('yourDBname')
GO
ALTER DATABASE yourDBname SET SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
DBCC CheckDB ('yourDBname', REPAIR_ALLOW_DATA_LOSS)
GO
ALTER DATABASE yourDBname SET MULTI_USER
GO

Как переименовать название поля в таблице MS SQL

Как переименовать поле (колонку, столбец) в таблице базы MS SQL уже после создания таблицы?
Это можно сделать независимо от того содержит ли столбец данные или нет. Для этого используем системную хранимую процедуру sp_rename.

EXEC sp_rename 'tableName.[oldColumnName]', 'newColumnName', 'COLUMN'

Пример:

EXEC sp_rename 'customers.[contact title]', 'title', 'COLUMN'

Эта команда переименует существующий столбец ‘contact title’ таблицы customers в ‘title’

Подробности надо смотреть в Books Online (BOL)

Неверная кодировка в MySql из PHP. Вопросы вместо слов

Пишу свой первый сайт на PHP с использованием базы данных Mysql и столкнулся со следующей неожиданностью, о которой ниже, а для начала вводные данные:

  • сайт делается в кодировке utf8, о чем указано в заголовке страницы между тегами head:
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  • страница создается в редакторе в кодировке utf8
  • сама база создана с указанием кодировки utf8

При этом получилось так, что при извлечении данных из базы я получал вместо строк с русским текстом знаки вопросов, хотя браузер правильно понимал кодировку.
Решение данной проблемы оказалось простым. Надо после соединения с MySql базой из PHP указать явную кодировку запросом set names utf8
Например, так:

$result = mysql_query ("set names utf8", $link);

где $link — линк на идентификатор соединения с базой (см. mysql_connect())
Всё, теперь данные выводятся в верной кодировке.
Вообще-то эта проблема имеет и другие корни с соответственно другими методами решения. Более подробно о проблемах с кодировками в MySQL можно почитать в следующих источниках:

  1. phpMyadmin по-русски. Очень доходчиво, по полочкам все разложено и в доступной краткой форме.
  2. PHP FAQ. Так же полезная информация, но еще рассказывается что делать если требуется перекодировка данных.
  3. Linux.by wiki pages. А это вообще целый вики на эту тему.

Firebird

Firebird
В этой статье начинаю небольшие серии заметок по СУБД Firebird.
Для начала хочу запечатлеть у себя в блоге то, что я давно искал для FireBird — описание языка SQL в виде глоссария.
Итак Глоссарий Firebird здесь.
На мой взгляд очень полезная штука, особенно если учесть что встроенной справку у FB нет.
Для начала это всё. Если у кого-нибудь есть что дополнить, может есть у кого-нибудь файл chm или еще какой-нибудь оффлайн справочник по DSQL или PSQL FireBird’а, оставляйте свои комментарии.