Lieber MudGuard,
<?php try { $pdo = new PDO("mysql:host=$db_host; dbname=$db_name;", $db_user, $db_pass); } catch (PDOException $e) { die(); } $insertSql = "INSERT INTO tabelle (spalte1, spalte2) VALUES (:wert1, :wert2); $insertStatement = $pdo->prepare($insertSql); $insertStatement->execute([ 'spalte1' => $_POST['param1'], 'spalte2' => $_POST['param2'] ]);
da sehe ich nirgends ein SET NAMES utf8. In meiner DB-Klasse ist der Aufruf dieser:
$t->pdo = new \PDO(
sprintf(
'mysql:dbname=%1$s;host=%2$s;port=%3$s;charset=UTF8;',
$settings['name'],
$settings['host'],
$settings['port']
),
$settings['user'],
$settings['pw'],
array(
\PDO::ATTR_ERRMODE => \PDO::ERRMODE_EXCEPTION,
\PDO::MYSQL_ATTR_FOUND_ROWS => true,
\PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
)
);
Vielleicht hilft Dir das ja schon weiter?
Liebe Grüße
Felix Riesterer