PHP不会从MySQL数据库中写出匈牙利字符

时间:2019-02-05 14:40:18

标签: php mysql

因此,我进行了搜索系统测试(此代码从名为“ diakok”的数据库中搜索项目),并且出现了问题。 当我输入我的名字(GéróKristóf)时,它说数据库中没有这样的名字,但是当我将其写为Gero Kristof时,它会找到正确的名字(但由于这些特殊原因,它没有写出名字)字母),而数据库中有é和ó而不是e和o。 我尝试过更改数据库和代码中的编码类型,但是没有任何效果。 (使用没有特殊字符的名称,就可以正常工作)

<?php
  $keresesi_tipus = 'felhasznalonev';
  $keresesi_kifejezes = trim($_POST['keresesi_kifejezes']);
header("Content-type: text/html; charset=utf-8");
  if (!$keresesi_kifejezes) {
    echo "Nem adott meg keresni való nevet. (1-es hibakód)";
    exit;
  }

  if (!get_magic_quotes_gpc()) {
    $keresesi_tipus = addslashes($keresesi_tipus);
  }
  @ $adatbazis = new mysqli('localhost', 'root', '', 'diakok');
  if (mysqli_connect_errno()) {
    echo "Hiba! Nem sikerült csatlakozni az adatbázishoz. (2-es hibakód)";
    exit;
  }

  $lekerdezes = "SELECT * FROM diakok WHERE ".$keresesi_tipus
                ." LIKE '%".$keresesi_kifejezes."%'";
  $talalat = $adatbazis->query($lekerdezes);
  $talalatok_szama = $talalat->num_rows;

  echo "<p>A keresésnek megfelelő diákok száma: ".$talalatok_szama."</p>";

  for ($i = 0; $i < $talalatok_szama; $i++) {
    $sor = $talalat->fetch_assoc();
    echo "<p><strong>".($i+1).". Teljes neve: ";
    echo htmlspecialchars(stripslashes($sor['teljes_nev']));
    echo "</strong><br /> Felhasználóneve: ";
    echo stripslashes($sor['felhasznalonev']);
    echo "<br /> Kategóriája: ";
    echo stripslashes($sor['kategoria']);
    echo "<br />";
    echo "</p>";
  }
  $talalat->free();
  $adatbazis->close();
?>

这是有关数据库的图片: enter image description here

0 个答案:

没有答案