mysql_num_rows всегда возвращает ноль, когда я использую польские буквы
Поэтому у меня есть небольшая проблема, потому что мне нужно проверить, существует ли "продукт" в базе данных, и если нет, я хочу создать его. Я делал что-то вроде этого:
$tekst2 = "SELECT * FROM product WHERE nazwa = '$nazwa'";
$id_zap2 = mysql_query($tekst2);
if(!$id_zap2)
{
return new Response('Nie można przesłać zapytania.');
}
else
{
$row2 = mysql_num_rows($id_zap2);
}
if($row2 == 0)
{
$product->setCena($cena);
$product->setJednostka($jednostka);
$product->setIlosc($ilosc);
$product->setNazwa($nazwa);
$em = $this->getDoctrine()->getManager();
$em->persist($product);
$em->flush();
return $this->redirect('addproduct?done=' . $nazwa);
}
else
{
return $this->redirect('addproduct?error=1');
}
И когда я использую для "$nazwa" нормальные буквы, все в порядке. Например, "Kukurydza", "Chleb" работают нормально, но когда я использую польские буквы, например, "Mąka", он всегда возвращает 0 как "$row2", и я могу создать множество продуктов с тем же именем ($nazwa).
1 ответ
Я должен добавить:
$tekst3 = "SET NAMES utf8";
mysql_query($tekst3);
$tekst3 = "SET CHARACTER_SET utf8_unicode_ci";
mysql_query($tekst3);
В моем коде и сейчас все работает нормально!