MySQL 4.1 + PHP 5

6 отговора 1229 прегледа
#1

MySQL 4.1 + PHP 5

След малко несполучливи опити с MySQL 4.1 + PHP 5 реших да задам малко въпроси на разбиращите. Ситуацията е следната:

MySQL 4.1 и PHP 5 инсталирани под Windows
MySQL е стартиран с default-character-set=cp1251, my.ini го има и в директорията на MySQL и в Windows.
PHP е стартирано с новата mysqli библиотека и всичко работи, като изключим кирилицата.

С PHP4 и MySQL 4.0 същата конфигурация, т.е. mysql_client_encoding в PHP връща правилно cp1251 (чете си го от my.ini), в новия случай обаче mysqli_client_encoding връща latin1_swedish_ci. Дали PHP5 изобщо не чете my.ini и има ли начин да се промени настройката на MySQLi клиента?

Единственото, което намерих е SET NAMES 'charset_name' да бъде викано за всяка конекция към базата, което е дървено решение донякъде.

Отговор
в отговор на blueboxed #2

Re: MySQL 4.1 + PHP 5

latin1_swedish_ci e Collation а не Character Set ама това върви по подразбиране за Character Set latin1

Имаш ли default-character-set и във [client] частта или е само в [mysqld]?

Не можеше ли да се задават mysql_ опции и в php.ini ?

salle.online.bg/sig
Отговор
в отговор на salle #3

Re: MySQL 4.1 + PHP 5

Няма го в [client] частта, защото досега работеше даже и да е само в [mysqld] частта. Всъщност сега направих малко тестове - това какво пише в [client] частта няма никакво значение за MySQL библиотеката, която върви с PHP (поне що се касае до default-character-set), учудващо си го чете от [mysqld] частта. Все пак обаче чете my.ini.
Всъщност ако искате да го подкарате като хората, MySQL-а трябва да ви инсталиран в C:\MySQL\, защото PHP клиента търси хардкоднат пътя до там и пищи:
File 'C:\mysql\\share\charsets\?.conf' not found (Errcode: 2)
Character set '#14' is not a compiled character set and is not specified in the 'C:\mysql\\share\charsets\Index
Това обаче е друг проблем и се отнася за MySQL библиотеката и беше описан някъде из bugs.php.net.

Сегашния проблем е, че независимо какво пише в my.ini, новата PHP библиотека MySQLi като че ли не чете изобщо my.ini, нито [client] нито [mysqld] (php.ini няма опции за MySQLi character-set).

Общо взето няма много за четене за MySQLi и този проблем не го намерих описан никъде, а е странно, защото на практика ако това не е настроено, с MySQLi и MySQL 4.1 не може да се работи с кирилица, защото се омазват нещата с колациите (появяват се само ?????). За момента реших да се върна към 4.0, докато намеря някакъв отговор някъде.

Отговор
в отговор на blueboxed #4

Re: MySQL 4.1 + PHP 5

Aко намериш решение на проблема, моля пиши за него тук, защото имам същите трудности.

Отговор
в отговор на Unit-731 #5

Re: MySQL 4.1 + PHP 5

Може би ще намерите по-лесно отговор след като постнете въпроса ;-))))

В смисъл на по-високо ниво от този форум -> препоръчвам ви php.net :-)

root@ro6avia#echo rm -rf * > /bin/seek_and_destroy
root@ro6avia#/bin/seek_and_destroy
Отговор
в отговор на ro6avia #6

Re: MySQL 4.1 + PHP 5

Az sa6to polzvam MySQL 4.1.7 no s .net i imam sa6tia problem s kirilizata. Mnogo gadno, ako otkriete ne6to post-nete go pls.

Отговор
в отговор на blueboxed #7

Re: MySQL 4.1 + PHP 5

Здравейте,
моля споделете ако сте намерили решение на проблема с character-set-a в MySQL 4.1/Windows!

Отговор