Кодировка mysql

Тема в разделе "PHP", создана пользователем kreator, 9 май 2012.

Статус темы:
Закрыта.
Модераторы: latteo
  1. kreator

    kreator Создатель

    Заблокирован
    Регистр.:
    18 июн 2011
    Сообщения:
    113
    Симпатии:
    6
    Не раз поднималась подобная тема.
    Но везде как правило особый случай. Вот и у меня, может кто подскажет.
    Кодировка скрипта - utf8
    Кодировка БД - utf8
    На страницах скрипта задана кодировка.
    Но слово 'привет' в базу записывается - Привет
    Но выводится потом нормально.
    -------------------
    После строк подключения БД пробовал добалять - mysql_query("SET NAMES utf8");
    Подключение пропадает с ошибкой:
    Код:
    Warning: mysql_query() [function.mysql-query]: Access denied for user 'bigfaq'@'localhost' (using password: NO) in /home/users2/b/bigfaq/domains/.........../config.php on line 11
     
    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/users2/b/bigfaq/domains/............/config.php on line 11
     
    Warning: mysql_query() [function.mysql-query]: Access denied for user 'bigfaq'@'localhost' (using password: NO) in /home/users2/b/bigfaq/domains/............../config.php on line 11
     
    Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/users2/b/bigfaq/domains/.........../config.php on line 11
     
  2. digitalfarseer

    digitalfarseer Постоялец

    Регистр.:
    18 апр 2012
    Сообщения:
    75
    Симпатии:
    11
    Попробуйте в конфигурации MySQL задать этот параметр, а не в скрипте.
     
  3. 868283

    868283 Писатель

    Регистр.:
    7 май 2012
    Сообщения:
    3
    Симпатии:
    1
    1 Запись откуда идет?
    2 При записи скрипта какая кодировка задана?
    3 Скрипт на PDO или просто MySQL запрос?
     
  4. casinolot

    casinolot

    Регистр.:
    22 окт 2010
    Сообщения:
    548
    Симпатии:
    84
    Я всегда перед обращением к БД,
    mysql_query('set names utf8');
    Если такие вылазять ошибки у тебя, может обратись к Хостеру, может у него что-то отключено, у меня аналогичная ошибка вылазила,когда он отдельные вещи на SQL сервере отключил.
     
  5. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    Попробуйте:
    PHP:
    $link=mysql_connect($hostName,$userName,$password))
    mysql_query('set names utf8'$link);
    А вообще по приведенным ошибкам написано, что скрипт не может подключиться к mysql для такого логина/пароля. Проверьте логин/пароль.
    Все остальные ошибки - причина этой ошибки.
     
  6. kreator

    kreator Создатель

    Заблокирован
    Регистр.:
    18 июн 2011
    Сообщения:
    113
    Симпатии:
    6
    mysql_query("SET NAMES utf8");

    - без этой строчки все подключается нормально, я ее просто пробовал добавить.
    весь скрипт на утф8, база утф8, но записывается в нее cp1251
     
  7. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    975
    Симпатии:
    255
    А в 11 строчке файла конфиг php что написано?
    И желательно предыдущие 10 показать.
    Возможно для данного пользователя не разрешено выполнять команду: SET NAMES utf8
     
  8. kreator

    kreator Создатель

    Заблокирован
    Регистр.:
    18 июн 2011
    Сообщения:
    113
    Симпатии:
    6
    Код:
    <?php
    $database = "000000";
    $sqlhost = "localhost";
    $sqluser = "000000";
    $sqlpass = "000000";
    $prefix = "000_";
    $usedDatabaseType = "mysql";
    $usedDatabaseExtension = "pdo";
    $messages_shown_on_entrance=1;
    $limit_logins_in_three_minutes=4;
    Одиннадцатой строчкой как раз вставлял ту запись
     
  9. invader

    invader Серый кардинал в отставке :)

    Moderator
    • Супермодератор
    Регистр.:
    3 апр 2006
    Сообщения:
    2.718
    Симпатии:
    5.691
    Нет тут особых случаев. Есть недостаток знаний.
    Автор путает файл конфигурации, в котором указываются данные базы и mysql_connect из класса подключения к базе.
    Пример:
    Код:
     $this->dblink = @ mysql_connect($this->dbhost, $this->username, $this->password);
                mysql_query("SET NAMES 'utf8'");
                mysql_query ("set character_set_client='utf8'");
                mysql_query ("set character_set_results='utf8'");
                mysql_query ("set collation_connection='utf8_general_ci'");
    Полный код приведите, куда вы пытаетесь добавлять принудительную кодировку.
    А то развели флуд ни о чём...
     
  10. kreator

    kreator Создатель

    Заблокирован
    Регистр.:
    18 июн 2011
    Сообщения:
    113
    Симпатии:
    6
    Еще в фале настроек нашел вот это, куда именно относится предыдущий файл, больше нигде параметры подключения не встречаются

    Код:
    abstract class echConfig
    {
        protected $_database;
        protected $_sqlhost;
        protected $_sqluser;
        protected $_sqlpass;
        
        protected $_prefix;
        
        protected $_usedDatabase;
        protected $_usedDatabaseExtension;
    
        protected $_messages_shown_on_entrance;
        protected $_limit_logins_in_three_minutes;
        
        /**
        * Constructor
        *
        * @return void
        */
        protected function __construct (){
        
            error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
            
            // Require the config.php
            if (isset($GLOBALS["path"]))
                require ($GLOBALS["path"].'config.php');
            else 
                require ('./config.php');
    
            
            $this->_database=$database;
            $this->_sqlhost=$sqlhost;
            $this->_sqluser=$sqluser;
            $this->_sqlpass=$sqlpass;
            $this->_prefix=$prefix;
            $this->_usedDatabase=$usedDatabaseType;
            $this->_usedDatabaseExtension=$usedDatabaseExtension;
            $this->_messages_shown_on_entrance=$messages_shown_on_entrance;
            $this->_limit_logins_in_three_minutes=$limit_logins_in_three_minutes;
        }
    }
     
Статус темы:
Закрыта.