• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd kodowania utf-8. Nie wysyła polskich znaków do bazy MySQL

Object Storage Arubacloud
0 głosów
1,565 wizyt
pytanie zadane 13 stycznia 2019 w PHP przez kide11com Nowicjusz (120 p.)

Witam. Zgłaszam się z problemem takim jak w temacie. A dokładniej: mam napisany skrypt w PHP, który ma w bazie danych tworzyć nowy wiersz i dodać dane tekstowe artykułu (Tytuł i treść). Niestety mimo ustawienia kodowania utf8_polish_ci i w bazie danych, i w skrypcie do bazy danych nie dochodzą polskie znaki, tylko znaki zapytania (Podczas wpisywania polskich znaków w bazie danych zapisują się one poprawnie więc wina raczej nie jest po stronie bazy danych). Skończyły mi się pomysły co może nie działać w skrypcie, z góry dzięki za pomoc

<?php
	session_start();

	require_once "connect.php";
	$polaczenie = @new mysqli($host, $db_user, $db_password, $db_name);
	header('Content-type: text/html; charset=UTF-8');
	if ($polaczenie->connect_errno!=0){
		echo "Error: ".$polaczenie->connect_errno;
	}else{
		$tytul = $_POST['tytul'];
		$tresc = $_POST['tresc'];
		$add = 'INSERT INTO Artykuly (tt, tr) VALUES ("'.$tytul.'", "'.$tresc.'")';
		$polaczenie->query("SET NAMES 'utf8' COLLATE 'utf8_polish_ci'");
		$polaczenie->query("SET CHARSET utf8");
		echo $add;
		if ($rezultat = $polaczenie->query($add)){
			echo "D Z I A L A";
			header('Location: zarzadzanie.php');
		}
	}
?>

 

P.S. Inne rozwiązania z tego forum nie działają

1 odpowiedź

0 głosów
odpowiedź 13 stycznia 2019 przez Greeenone Pasjonat (16,100 p.)

Spróbuj dodać 

$mysqli->set_charset("utf-8")

Do pliku connect.php

komentarz 13 stycznia 2019 przez kide11com Nowicjusz (120 p.)

Dostałem taki błąd po dodaniu tego

Fatal error: Call to a member function set_charset() on null

komentarz 13 stycznia 2019 przez Greeenone Pasjonat (16,100 p.)
edycja 13 stycznia 2019 przez Greeenone

Zamień "$mysqli" na to samo czego używasz do połączenia się z bazą danych. Powinno pomóc. Zapomniałem jeszcze na końcu dodać ;

komentarz 13 stycznia 2019 przez kide11com Nowicjusz (120 p.)

W sensie? Bo nie za bardzo rozumiem
 

<?php
	$host = "mysql.cba.pl";
	$db_user = "lllllllll";
	$db_password = "hhhhhhhh";
	$db_name = "bdbdbdbdbd";
	$mysqli->set_charset("utf-8");
?>

 

komentarz 13 stycznia 2019 przez Arkadiusz Waluk Ekspert (288,330 p.)
Pomyśl logicznie, nigdzie nie masz $mysqli w tym miejscu, a próbujesz coś na nim wywołać. Dopiero za 5 linią pokazanego skryptu (za new mysqli) możesz to wykonać na $polaczenie.

Podobne pytania

0 głosów
0 odpowiedzi 459 wizyt
0 głosów
1 odpowiedź 1,414 wizyt
0 głosów
3 odpowiedzi 2,465 wizyt
pytanie zadane 2 marca 2017 w SQL, bazy danych przez MałyAleWariat Bywalec (2,830 p.)

92,702 zapytań

141,615 odpowiedzi

320,180 komentarzy

62,060 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...