Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Dilinkooo 14. 04. 2016, 11:59:13
-
Dobry den.
Snazim sa ukladat data do sql skrz PHP. Nieako takto
if($check->rowCount()==0){
$sql=$dbh->prepare("INSERT INTO `search` (`title`, `url`, `description`) VALUES (?, ?, ?)");
$sql->execute(array(
$t,
$u,
$d
));
}else{
$sql=$dbh->prepare("UPDATE `search` SET `description` = ?, `title` = ? WHERE `url`=?");
$sql->execute(array(
$d,
$t,
$u
));
V db.php mam toto
$dbh = new PDO('mysql:dbname='.$db.';host='.$host.';port='.$port, $user, $pass);
$dbh->exec("set names utf8");
Bohuzial mi to stale uklada stale bez diaktitiky takto
Rýchle a dôveryhodné správy zo Slovenska, sveta i Vášho regiónu.
Kde je chyba ?
Dakujem
-
viděl bych to na chybu v kódování
máš správně nastavené kódování v databázi, komunikaci PHP-databáze a zdroje dat?
-
Nejspíš jsi chybně založil tabulku s implicitním kódováním Latin1 a teď do ní láduješ data v UTF-8. Je nutné tu tabulku založit znovu se správným kódováním tabulky nebo konkrétních sloupců.
BTW: Ten tvůj příklad se dá zkrátit tak, že vypustíš i SELECT, který jsi zde neuvedl, a to celé nahradíš tímto:
$sql=$dbh->prepare("REPLACE `search` SET `title` = ?, `url`=?, `description` = ?");
$sql->execute(array($title, $url, $description));
-
bacha na psani pod widlema, pouzivaji cp1250 a nekdy to dela problemy.