Для MySQL


mysql://user:password@host[:port]|[/unix/socket]/database?
   charset=значение& [значением может быть направление перекодирования для MySQL 3.x/4.0 или название кодировки для MySQL 4.1+]
   ClientCharset=кодировка&
   [3.1.2]
   timeout=3&
   compress=0&
   named_pipe=1&
   autocommit=1&
   local_infile=0&
   [3.4.2]
   multi_statements=0
   [3.3.0]

Необязательные параметры:
Port - номер порта сервера баз данных. Можно использовать выражение:
user:password@имя_хоста:номер_порта/database,

А можно вместо
имени_хоста и номера_порта передать путь к UNIX сокету в квадратных скобках (UNIX socket - это некий магический набор символов (путь), который вам расскажет администратор MySQL, если он - это не вы. Через этот сокет может идти общение с сервером):
user:password@[/unix/socket]/database

charset - сразу после соединения выполняет команду «SET CHARACTER SET значение»;
ClientCharset - задает кодировку, в которой необходимо общаться с SQL-сервером, перекодированием занимается драйвер;
timeout - задает значение параметра Connect timeout в секундах;
compress - режим сжатия трафика между сервером и клиентом;
named_pipe - использование именованных каналов для соединения с сервером MySQL, работающим под управлением Windows NT;
autocommit - если установлен в 0, то после соединения выполняет команду «SET AUTOCOMMIT=0» (в документации по MySQL следует прочтать, как работает autocommit, в том числе какие команды вызывают COMMIT);
local_infile - если установлен в 1, то разрешается выполнение команды LOAD DATA [LOCAL] INFILE (подробности);
multi_statements - если установлен в 1, то текст SQL запроса может содержать несколько инструкций, разделённых символом ';' (символ ";" необходимо предварять символом "^").


Пример: перекодирование средствами
SQL сервера (рекомендуется, требуется MySQL 4.1 или выше)
MySQL сервер версии 4.1 и выше имеет богатые возможности по перекодированию данных, поэтому в случае его использования рекомендуется задействовать именно их, используя опцию charset, а не заниматься перекодированием средствами драйвера с помощью опции ClientCharset. В случае, если вы используете версию MySQL 4.1 и выше, вы даже можете в разных таблицах хранить данные в разных кодировках, хотя мы считаем, что в этом случае лучше всего хранить данные в кодировке UTF-8.

Допустим, данные в вашей базе хранятся в кодировке
UTF-8, а сайт работает в кодировке windows-1251, в этом случае нужно использовать следующую строку подключения:
mysql://user:password@host/database?charset=cp1251

В этом случае сразу после соединения SQL серверу будет выдана команда
«SET CHARACTER SET cp1251» и сервер сам будет перекодировать принимаемые данные из кодировки cp1251 в кодировку, в которой данных хранятся у него в таблице и обратно.
Внимание: в данном случае вы должны указать кодировку, в которой работает сайт.Внимание: данная опция выполняет команду MySQL, поэтому необходимо использовать названия кодировок MySQL сервера, которые отличаются от названий кодировок Parser, определяемых вами в конфигурационном файле.


Пример: база в koi8-r, страницы в windows-1251, перекодирование
SQL сервером (рекомендуется, MySQL 3.x и 4.0)
MySQL сервер версии 3.x и 4.0 не умеет перекодировать данные произвольным образом, однако умеет перекодировать их для наиболее распространённого для русского языка случая, когда символы в БД хранятся в кодировке koi8-r, а сайт работает в кодировке windows-1251.

В этом случае данные можно перекодировать средствами драйвера, задав опцию
ClientCharset=koi8-r (см. ниже), однако лучше это делать средствами SQL сервера, использовав следующую строку подключения:
mysql://user:password@host/database?charset=cp1251_koi8
В этом случае сразу после соединения SQL серверу будет выдана команда «SET CHARACTER SET cp1251_koi8», однако MySQL сервер данных версий трактует её иначе, а именно: он будет приходящие данные перекодировать из кодировки cp1251 в кодировку koi8-r и обратно.

Внимание: вы указываете опцию, указывающую направление перекодирования, при этом других значений данной опции, например koi8_cp1251, MySQL сервер не имеет.


Пример: база в windows-1251, страницы в
koi8-r, перекодирование драйвером (работает со всеми версиями MySQL сервера)
В некоторых редких случаях бывает, что невозможно использовать функции перекодирования, предоставляемые MySQL сервером. Тогда можно задействовать механизмы перекодирования драйвера, используя опцию ClientCharset.
Допустим, данные в вашей базе хранятся в кодировке
windows-1251, а сайт работает в кодировке koi8-r, в этом случае можно использовать такую строку подключения:
mysql://user:password@host/database?ClientCharset=windows-1251

В этом случае отправляемые SQL серверу данные будут перекодироваться драйвером из кодировки
$request:charset (в данном примере koi8-r) в кодировку windows-1251, а принимаемые от SQL сервера данные - обратно.
Внимание: в данном случае вы должны указать кодировку, в которой данные хранятся в базе данных.
Внимание: в данной опции вы должны указывать названия кодировок Parser, которые определяются вами в конфигурационном файле.


    Поддержать сайт на родительском проекте КГБ