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);

В моем коде и сейчас все работает нормально!

Другие вопросы по тегам