Php 使用波兰语字母时,mysql_num_行始终返回零

Php 使用波兰语字母时,mysql_num_行始终返回零,php,mysql,mysql-num-rows,Php,Mysql,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_row

所以我并没有什么问题,因为我需要检查数据库中是否存在“产品”,若不存在,我想创建一个。我是这样做的:

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

我要添加:

$tekst3 = "SET NAMES utf8";
mysql_query($tekst3);
$tekst3 = "SET CHARACTER_SET utf8_unicode_ci";
mysql_query($tekst3);

在我的代码中,现在一切正常

您是否考虑过这可能是字符集问题?我尝试了“utf8\u unicode\u ci”、“utf8\u polish\u ci”和“utf8\u general\u ci”。还是不行。你在哪里试过设置这些?数据库使用的字符集/编码是什么?这应该也是您在应用程序中使用的一个。我尝试在数据库(排序规则)中更改它。我需要在php代码中添加一些关于字符集的内容?
alterdatabasename字符集utf8 COLLATE utf8\uunicode\uci
ALTER TABLE tablename转换为字符集utf8 COLLATE utf8\U unicode\U ci-之前不要忘记支持您的数据库。