• 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

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
1,708 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 (289,990 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 481 wizyt
0 głosów
1 odpowiedź 1,703 wizyt
0 głosów
3 odpowiedzi 2,771 wizyt
pytanie zadane 2 marca 2017 w SQL, bazy danych przez MałyAleWariat Bywalec (2,830 p.)

93,174 zapytań

142,185 odpowiedzi

321,970 komentarzy

62,503 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 1157p. - dia-Chann
  2. 1139p. - Łukasz Piwowar
  3. 1131p. - CC PL
  4. 1126p. - Łukasz Eckert
  5. 1118p. - Tomasz Bielak
  6. 1104p. - Michal Drewniak
  7. 1083p. - Marcin Putra
  8. 1078p. - rucin93
  9. 1071p. - rafalszastok
  10. 1054p. - Adrian Wieprzkowicz
  11. 1047p. - Piotr Aleksandrowicz
  12. 1037p. - Michał Telesz
  13. 1023p. - Mariusz Fornal
  14. 1017p. - Mikbac
  15. 1005p. - ssynowiec
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...