I had this previously in my normal mysql_* connection:
mysql_set_charset(\"utf8\",$link);
mysql_query(\"SET NAMES \'UTF8\'\");
Do I need it
I test this code and
$db=new PDO('mysql:host=localhost;dbname=cwDB','root','',
array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
$sql="select * from products ";
$stmt=$db->prepare($sql);
$stmt->execute();
while($result=$stmt->fetch(PDO::FETCH_ASSOC)){
$id=$result['id'];
}
You'll have it in your connection string like:
"mysql:host=$host;dbname=$db;charset=utf8"
HOWEVER, prior to PHP 5.3.6, the charset option was ignored. If you're running an older version of PHP, you must do it like this:
$dbh = new PDO("mysql:$connstr", $user, $password);
$dbh->exec("set names utf8");
$conn = new PDO("mysql:host=$host;dbname=$db;charset=utf8", $user, $pass);