Кодировка mysql

Статус
В этой теме нельзя размещать новые ответы.

kreator

Создатель
Заблокирован
Регистрация
18 Июн 2011
Сообщения
113
Реакции
6
  • Автор темы
  • Заблокирован
  • #1
Не раз поднималась подобная тема.
Но везде как правило особый случай. Вот и у меня, может кто подскажет.
Кодировка скрипта - 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
 
Попробуйте в конфигурации MySQL задать этот параметр, а не в скрипте.
 
1 Запись откуда идет?
2 При записи скрипта какая кодировка задана?
3 Скрипт на PDO или просто MySQL запрос?
 
Не раз поднималась подобная тема.
Но везде как правило особый случай. Вот и у меня, может кто подскажет.
Кодировка скрипта - 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
Я всегда перед обращением к БД,
mysql_query('set names utf8');
Если такие вылазять ошибки у тебя, может обратись к Хостеру, может у него что-то отключено, у меня аналогичная ошибка вылазила,когда он отдельные вещи на SQL сервере отключил.
 
Попробуйте:
PHP:
$link=mysql_connect($hostName,$userName,$password))
mysql_query('set names utf8', $link);

А вообще по приведенным ошибкам написано, что скрипт не может подключиться к mysql для такого логина/пароля. Проверьте логин/пароль.
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
Все остальные ошибки - причина этой ошибки.
 
  • Автор темы
  • Заблокирован
  • #6
mysql_query("SET NAMES utf8");

- без этой строчки все подключается нормально, я ее просто пробовал добавить.
весь скрипт на утф8, база утф8, но записывается в нее cp1251
 
А в 11 строчке файла конфиг php что написано?
И желательно предыдущие 10 показать.
Возможно для данного пользователя не разрешено выполнять команду: SET NAMES utf8
 
  • Автор темы
  • Заблокирован
  • #8
Код:
<?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;

Одиннадцатой строчкой как раз вставлял ту запись
 
Нет тут особых случаев. Есть недостаток знаний.
Автор путает файл конфигурации, в котором указываются данные базы и 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'");
После строк подключения БД пробовал добалять - mysql_query("SET NAMES utf8");
Полный код приведите, куда вы пытаетесь добавлять принудительную кодировку.
А то развели флуд ни о чём...
 
  • Автор темы
  • Заблокирован
  • #10
Еще в фале настроек нашел вот это, куда именно относится предыдущий файл, больше нигде параметры подключения не встречаются

Код:
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;
    }
}
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху