Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Znaki zapytania zamiast liter łąśćź po przeniesieniu?
Forum PHP.pl > Forum > Bazy danych > MySQL
Cenoniada
Witam,

Dziwny błąd nas dopadł po przeniesieniu bazy danych na inny serwer mianowicie znaki zapytania zamiast polskich liter.

Oryginalne ustawienia na byłym serwerze :

Kodowanie strony
<?xml version="1.0" encoding="iso-8859-2" ?>

<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />

Baza MYSQL
  • System kodowania znaków dla MySQL: UTF-8 Unicode (utf8)
  • System porównań dla połączenia MySQL: utf_unicode_ci
Metoda porównywania napisów Latin1 oraz Latin2


Co może być nie tak?

POZDRAWIAM
Asmox
System kodowanie znaków moim zdaniem powinien być także na Latin2, jeśli chcesz polskie znaki. Ale ja i tak bardziej polecam stosowanie zamiany polskich znaków na encje przy wysyłaniu do MYSQL i odwrotnie
Mati100
Witam zrobiłem wszystko co zaleciłeś jednak nadal mam to samo
Asmox
Latin2 powinien mieć jeszcze podkategorie dla różnych państw. Jeżeli nie ma Latin2_polish (czy cośtam z Polską), to niestety polskie znaki trzeba zamieniać na encje przy wysyłaniu danych do bazy i odwrotnie po pobraniu ich.
Lejto
daj bezpośrednio po połączeniu się z bazą
  1. <?php
  2. mysql_query("SET NAMES 'latin1'");
  3. ?>

powinno pomóc
Mati100
"daj bezpośrednio po połączeniu się z bazą" sorry ale jestem bardzo newbie czyli kiedy to trzeba dac? Przypominam ze to mi sie dzieje na stronie.
Lejto
jak masz taki kod
  1. <?php
  2. mysql_connect('localhost', 'root', 'haslo');
  3. mysql_query("SET NAMES 'latin1'");
  4. ?>

to
  1. <?php
  2. mysql_query("SET NAMES 'latin1'");
  3. ?>

daj pod spodem
żeby było tak
  1. <?php
  2. mysql_connect('localhost', 'root', 'haslo');
  3. mysql_query("SET NAMES 'latin1'");
  4. ?>

ewentualnie zmień na latin2
miałem taki sam problem i to pomogło
Mati100
Sorry ponownie ale gdzie to trzeba wpisac? W skopiowanym pliku sql ?
Lejto
nie nie, w pliku .php który łączy z bazą
o nazwie funkcjebazy.php albo index.php albo config.php nie wiem jak masz
Mati100
mam php fusion więc chyba będzie config.php?
Edit://
W config.php mam coś takiego:
Kod
<?php
// database settings
$db_host="localhost";
$db_user="mediac_mati100";
$db_pass="olusia";
$db_name="mediac_bd";
$db_prefix="fusion_";
define("DB_PREFIX", "fusion_");
?>
Lejto
w config masz tylko zmienne a potrzebujemy funkcji mysql_connect(); zobacz w index.php
Mati100
w index.html jest coś takiego
Kod
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">

w index.php jest coś takiego:
Kod
require_once "maincore.php";

redirect($settings['opening_page']);

więc poszedłem do maincore.php i znalazłem coś takiego:
Kod
function dbconnect($db_host, $db_user, $db_pass, $db_name) {
    $db_connect = @mysql_connect($db_host, $db_user, $db_pass);
    $db_select = @mysql_select_db($db_name);
Lejto
a podaj jeszcze gdzie jest wywoływana zmienna $db_connect; bo nie wiem za bardzo jak do niej dołączyć ten kod
Mati100
Kod
function dbconnect($db_host, $db_user, $db_pass, $db_name) {
    $db_connect = @mysql_connect($db_host, $db_user, $db_pass);;
    $db_select = @mysql_select_db($db_name);
    if (!$db_connect) {
        die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to establish connection to MySQL</b><br>".mysql_errno()." : ".mysql_error()."</div>");
    } elseif (!$db_select) {
        die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to select MySQL database</b><br>".mysql_errno()." : ".mysql_error()."</div>");
    }
}

Jeśli o to chodzi a jak nie to 155 linijka
Lejto
zobacz tak
  1. <?php
  2. ....
  3. $kodowanie = mysql_query("SET NAMES 'latin1'");
  4. $lacz = $db_connect.$kodowanie;
  5.  
  6. if (!$lacz) {
  7.        die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to establish connection to MySQL</b><br>".mysql_errno()." : ".mysql_error()."</div>");
  8. ?>
Mati100
Kod
function dbconnect($db_host, $db_user, $db_pass, $db_name) {
$kodowanie = mysql_query("SET NAMES 'latin1'");
$lacz = $db_connect.$kodowanie;

if (!$lacz) {
       die("<div style='font-family:Verdana;font-size:11px;text-align:center;'><b>Unable to establish connection to MySQL</b><br>".mysql_errno()." : ".mysql_error()."</div>");{

Dałem to i na str wyskoczyło:
Kod
Warning: mysql_query() [function.mysql-query]: Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) in /home/gamerox/ftp/site/maincore.php on line 155

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in /home/gamerox/ftp/site/maincore.php on line 155

Unable to establish connection to MySQL
2002 : Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
Lejto
błąd przy zmiennej, nie wiem pokombinuj jak będę miał trochę więcej czasu to napisze
Mati100
Ok sam raczej nic nie zrobie więc muszę się zdac na ciebie winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.