PDA

View Full Version : سوال: ست کردن کرکتر ست utf 8 در اتصال با PDO



saeed-71
جمعه 09 اسفند 1392, 22:49 عصر
سلام.
ست کردن UTF 8 در اتصال با pdo چجوریه؟
من هر کار میکنم درست نمیشه.
حروف فارسی ثبت نمیشن


<?php
$servername = "localhost";
$dbname = "hytodb";
$username = "root";
$password = "";
$dsn = "mysql:host=$servername;dbname=$dbname";
try{
$connect = new PDO($dsn,$username,$password);
$connect->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
echo "اتصال انجام شد";
return $connect;
}
catch(PDOException $error){
echo "error in connect";
exit();
}

?>

***BiDaK***
جمعه 09 اسفند 1392, 23:12 عصر
$pdo = new PDO("mysql:host=$dbHost;dbname=$dbName;", $dbUsername, $dbPass, array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',));

hamedarian2009
شنبه 10 اسفند 1392, 09:14 صبح
سلام اینطوری راحت تره
$pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8 ','root','');

sherlock0111
شنبه 10 اسفند 1392, 09:35 صبح
وقتی اتصال رو برقرار کردی با دستور

$connect->excue("SET CHARACTER SET UTF8")
درسا میشه!

olampiad
پنج شنبه 17 مهر 1393, 13:46 عصر
سلام
به این کد من ی نگا بندازید.



function __construct($db,$host,$dbname,$user,$pass){
parent::__construct("$db:host=$host;dbname=$dbname","$user","$pass");
$this->excue("SET CHARACTER SET UTF8");
}


چرا به این کد من ایراد میگیره.
من این کد رو در کجا و چجوری اعمال کنم تا دیتابیسم فارسی بشه.
ممنون

saeed-71
پنج شنبه 17 مهر 1393, 13:54 عصر
سلام.
تو قسمت 1تا8 اموزش موتور جستجوگر خودرو اینا رو توضیح دادم رایگانم هست میتونی فیلمشو ببینی.
www.php-pro.ir/edu

MMSHFE
پنج شنبه 17 مهر 1393, 15:27 عصر
$dsn = 'mysql:dbname=learning;host=localhost';
$options = array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'utf8\'',
);
try {
$pdo = new PDO($dsn, 'root', '', $options);
}
catch(Exception $e) {
echo 'Connection failed: ' . $e->getMessage();
}

MMSHFE
پنج شنبه 17 مهر 1393, 15:28 عصر
سلام
به این کد من ی نگا بندازید.



function __construct($db,$host,$dbname,$user,$pass){
parent::__construct("$db:host=$host;dbname=$dbname","$user","$pass");
$this->excue("SET CHARACTER SET UTF8");
}


چرا به این کد من ایراد میگیره.
من این کد رو در کجا و چجوری اعمال کنم تا دیتابیسم فارسی بشه.
ممنون

execute باید بنویسید نه excue

Mori Bone
پنج شنبه 17 مهر 1393, 16:40 عصر
وقتی اتصال رو برقرار کردی با دستور

$connect->excue("SET CHARACTER SET UTF8")
درسا میشه!

این دستور مشکل داره و اصلا بهینه نیست. از
SET NAMES 'utf8' استفاده کنید.

imohammad
پنج شنبه 17 مهر 1393, 16:45 عصر
از این کلاس استفاده کن
خیلی جم و جور و سادست
https://github.com/indieteq/PHP-MySQL-PDO-Database-Class