• 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,523 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 (287,950 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 430 wizyt
0 głosów
1 odpowiedź 1,388 wizyt
0 głosów
3 odpowiedzi 2,401 wizyt
pytanie zadane 2 marca 2017 w SQL, bazy danych przez MałyAleWariat Bywalec (2,830 p.)

92,575 zapytań

141,424 odpowiedzi

319,649 komentarzy

61,960 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...