У меня есть вопрос по поводу "просто корзины покупок php" из этого блога https://phppot.com/php/simple-php-shopping-cart/.
Когда я использую полированные символы в базе данных (в названии продукта), на веб-сайте я вижу только "?" вместо этого персонажи. Как и где я могу установить кодировку на "UTF-8"?
В БД установлен Utf8, документ сохраняется в UTF-8, в HTML это "meta charset =" utf-8 ", в .htaccess я написал" AddDefaultCharset utf-8 AddCharset utf-8 .html .css .js .php "
DefaultLanguage pl-PL ", я больше не знаю, что делать
Это мой dbcontrroller:
<?php
class DBController {
private $host = "localhost";
private $user = "root";
private $password = "";
private $database = "tuliroza";
private $conn;
function __construct() {
$this->conn = $this->connectDB();
$mysqli->set_charset('utf8mb4');
}
function connectDB() {
$conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
return $conn;
}
function runQuery($query) {
$result = mysqli_query($this->conn,$query);
while($row=mysqli_fetch_assoc($result)) {
$resultset[] = $row;
}
if (!empty($resultset))
return $resultset;
}
function numRows($query) {
$result = mysqli_query($this->conn,$query);
$rowcount = mysqli_num_rows($result);
return $rowcount;
}
}
?>
Попробуйте прочитать это: stackoverflow.com/questions/279170/utf-8-all-the-way-through
Соединение с db правильное
Нам понадобится MCVE или хотя бы доказательство всего этого. Звучит так, как будто вы покрыли основы.
Куда мне положить "$ mysqli-> set_charset ('utf8mb4');"?
В вашем коде это должно быть $this->conn->set_charset('utf8mb4');. У вас нет переменной с именем $ mysqli. Или, возможно, поскольку вы не используете объектно-ориентированный mysqli, на самом деле это должен быть mysqli_set_charset($this->conn, 'utf8mb4');. Но да, вы положили его в нужное место - это нужно делать сразу после подключения
На БД хорошо иметь utf8mb4_unicode_cistackoverflow.com/q/766809/860099






А как насчет связи?