Я пытаюсь решить проблему UTF8. Пока мне удается протестировать, и он работает в соединении mysqli.
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "tesddddt";
$conn = mysqli_connect($servername, $username, $password, $dbname);
mysqli_set_charset($conn,"utf8");
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT * FROM customer";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) > 0) {
// output data of each row
while($row = mysqli_fetch_assoc($result)) {
echo "id: " . $row["uid"]. " - Name: " . $row["username"]. " " . $row["email"]. "<br>";
}
} else {
echo "0 results";
}
У меня есть возможность правильно вставлять и выбирать данные с символами, указанными в его языке, с вышеуказанной кодировкой.
Однако, когда я пытаюсь сделать это в PDO, при вставке данных появляется 1 ошибка.
public function __construct(){
try {
$conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user_name, $this->db_pass);
mysqli_set_charset($conn,"utf8"); // <- added here
$this->conn=$conn;
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $e)
{
echo "Connection failed: " . $e->getMessage();
}
}
Я получил эту ошибку
Warning: mysqli_set_charset() expects parameter 1 to be mysqli, object given in...
Мой PHP проект использует PDO и, следовательно, необходимо, чтобы получить эту работу в формате PDO. Кто-нибудь знает, как это решить?
[он должен идти в DSN] (https://phpdelusions.net/pdo#dsn) –