Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem PHP objekt mysqli a problem so selectom s diakritikou

Mam v databaze mena s diakritikou, collation je nastavene na utf8_slovak_ci. Pokial chcem vyhladat meno, ktore sa zacina na velke pismeno s diakritikou napr. Č, tak mi ho nenajde. Na spojenie s mysql pouzivam objekt mysqli. Skusal som nastavovat pred selectom SET CHARACTER SET, ale nepomohlo to. Z phpmyadmina select vrati spravne mena. Ma niekto riesenie na tento problem?

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Otestuj: <?php $mysqli = new mysqli("localhost", "my_user", "my_password", "test"); /* check connec…
pme 30.06.2015 12:39
pme
utf8 je samozrejme nastavene. S tymto som sa naozaj este nestretol. Vyhladavam klasicky cez select $…
Logan2 30.06.2015 12:49
Logan2
napadá mě ještě jedna věc,, že zakopaný pes bude v LIKE, ale i ten mu fungoval. Zkoušel jsem toto u… poslední
Pan Töfl 30.06.2015 19:13
Pan Töfl

Otestuj:

<?php
$mysqli = new mysqli("localhost", "my_user", "my_password", "test");

/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}

/* change character set to utf8 */
if (!$mysqli->set_charset("utf8")) {
    printf("Error loading character set utf8: %s\n", $mysqli->error);
} else {
    printf("Current character set: %s\n", $mysqli->character_set_name());
}

$mysqli->close();
?>

napadá mě ještě jedna věc,, že zakopaný pes bude v LIKE, ale i ten mu fungoval.

Zkoušel jsem toto u sebe a funguje mi to, dokonce mohu nahradit Bů za Bú a Bu, nebo slovak nahradit za general, zkus tyto změny

SELECT * FROM `x` WHERE (`yy` LIKE 'Bů%' COLLATE utf8_slovak_ci)

Toto může pomoci
https://dev.mysql.com/doc/refman/5.0/en/charset-co llate.html
http://jonisalonen.com/2012/ultimate-guide-to-utf8 -and-mysql/ - jsou tam 3 způsoby nastavení v 2. odstavci

Zpět do poradny Odpovědět na původní otázku Nahoru