Ben PHP programlama öğrenme yaşıyorum, bu yüzden kurulum test veritabanı var ve onunla çeşitli şeyler yapmaya çalışın. Yani durum böyledir:
Veritabanı harmanlama utf8_general_ci olduğunu.
Sorgu tarafından oluşturulan tablo "kitap" vardır
create table books
( isbn char(13) not null primary key,
author char(50),
title char(100),
price float(4,2)
);
Sonra bazı örnek verilerle dolu - bu metin girişleri rusça vardır unutmayın. Bu sorgu BOM. Sql olmadan utf-8 olarak kaydedilir ve yürütülür.
insert into books values
("5-8459-0046-8", "Майкл Морган", "Java 2. Руководство разработчика", 34.99),
("5-8459-1082-X", "Кристофер Негус", "Linux. Библия пользователя", 24.99),
("5-8459-1134-6", "Марина Смолина", "CorelDRAW X3. Самоучитель", 24.99),
("5-8459-0426-9", "Родерик Смит", "Сетевые средства Linux", 49.99);
Ben phpMyAdmin oluşturulan tablonun içeriğini gözden geçirdiğinizde, ben doğru sonuçları almak.
Ben bu tablodan veri almak ve php yoluyla görüntülemek çalıştığınızda, yerine Rus sembolleri soru işaretleri olsun. İşte benim php kod parçasıdır:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Books</title>
</head>
<body>
<?php
header("Content-type: text/html; charset=utf-8");
mysqli_set_charset('utf8');
@ $db = new mysqli('localhost', 'login', 'password', 'database');
$query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
$result = $db->query($query);
$num_results = $result->num_rows;
for ($i = 0; $i < $num_results; $i++) {
$row = $result->fetch_assoc();
echo "<p><strong>".($i+1).". Title: ";
echo htmlspecialchars (stripslashes($row['title']));
echo "</strong><br />Author: ";
echo stripslashes($row['author']);
echo "<br />ISBN: ";
echo stripslashes($row['isbn']);
echo "<br />Price: ";
echo stripslashes($row['price']);
echo "</p>";
}
...
Ve burada çıktı:
1. Название: Java 2. ??????????? ????????????
Автор: ????? ??????
ISBN: 5-8459-0046-8
Цена: 34.99
Birisi ben yanlış yapıyorum ne işaret edebilir?