Принудительно выставить кодировку БД

Тема в разделе "PHP", создана пользователем Compressor, 5 май 2009.

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

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    Есть двиг.

    То что уже есть в бд показыват номарльно. Но при добавлении нового элемента пишет:

    HTML:
    Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
    Настройки хостера менять нельзя.

    Работает с БД так:

    HTML:
    
    $dbConn = mysql_connect ($dbHost, $dbUser, $dbPass) or die ('MySQL connect failed. ' . mysql_error());
    mysql_select_db($dbName) or die('Cannot select database. ' . mysql_error());
    function &dbQuery($sql){ return mysql_query($sql); }
    function dbAffectedRows(){ global $dbConn;  return mysql_affected_rows($dbConn); }
    function &dbFetchArray($result, $resultType = MYSQL_NUM) {return mysql_fetch_array($result, $resultType); }
    function &dbFetchAssoc($result){ return mysql_fetch_assoc($result); }
    function &dbFetchRow($result){ return mysql_fetch_row($result); }
    function dbFreeResult($result){ return mysql_free_result($result); }
    function dbNumRows($result){ return mysql_num_rows($result); }
    function dbSelect($dbName){ return mysql_select_db($dbName); }
    function dbInsertId(){ return mysql_insert_id(); }
    
    Как я понимаю нужно принудительно выставить
    HTML:
    mysql_query('SET character_set_database = cp1251');
    mysql_query('SET NAMES cp1251');
    Как это сделать?
    Прошу помощи =)
     
  2. PHP_Master

    PHP_Master

    Регистр.:
    3 фев 2008
    Сообщения:
    2.647
    Симпатии:
    590
    PHP:
    $dbConn mysql_connect ($dbHost$dbUser$dbPass) or die ('MySQL connect failed. ' mysql_error());
    mysql_select_db($dbName) or die('Cannot select database. ' mysql_error());
    mysql_query('SET character_set_database = cp1251');
    mysql_query('SET NAMES cp1251');
    function &
    dbQuery($sql){ return mysql_query($sql); }
    function 
    dbAffectedRows(){ global $dbConn;  return mysql_affected_rows($dbConn); }
    function &
    dbFetchArray($result$resultType MYSQL_NUM) {return mysql_fetch_array($result$resultType); }
    function &
    dbFetchAssoc($result){ return mysql_fetch_assoc($result); }
    function &
    dbFetchRow($result){ return mysql_fetch_row($result); }
    function 
    dbFreeResult($result){ return mysql_free_result($result); }
    function 
    dbNumRows($result){ return mysql_num_rows($result); }
    function 
    dbSelect($dbName){ return mysql_select_db($dbName); }
    function 
    dbInsertId(){ return mysql_insert_id(); }
     
    Compressor нравится это.
  3. Compressor

    Compressor

    Регистр.:
    31 янв 2009
    Сообщения:
    314
    Симпатии:
    200
    Даже стыдно...

    От такого способа меня отпугивало присвоение переменной $dbConn.

    Работает...
     
  4. babon

    babon Создатель

    Регистр.:
    24 авг 2008
    Сообщения:
    25
    Симпатии:
    0
    mysql_query('SET NAMES cp1251');
    сразу после коннекта будет достаточно
     
Статус темы:
Закрыта.