PDA

View Full Version : مشکل دیتابیس با حروف فارسی



علی رضائی
دوشنبه 11 شهریور 1392, 16:49 عصر
با سلام
من قبلا برای رفع مشکل مشاهده کاراکتر های فارسی در دیتابیس این خط رو

mysql_set_charset('utf8',$conn);

به فایل db.php
یعنی در ادامه این کد ها

<?php
$conn = mysql_connect('localhost', 'user','pass' ) or die(mysql_error());
mysql_select_db('db', $conn) or die(mysql_error());
mysql_set_charset('utf8',$conn);
?>
اضافه کردم و مشکل کاملا حل شد.

حالا برای یه سایت دیگه که فایل
db.php
فرق می کنه و به این صورت هست

<?php
DEFINE('DATABASE_USER', 'myuser');
DEFINE('DATABASE_PASSWORD', 'mypass');
DEFINE('DATABASE_HOST', 'localhost');
DEFINE('DATABASE_NAME', 'mydb');

/*Default time zone ,to be able to send mail */
date_default_timezone_set('UTC');

/*You might not need this */
ini_set('SMTP', "mail.myt.mu");
// Overide The Default Php.ini settings for sending mail
//This is the address that will appear coming from ( Sender )
define('EMAIL', 'mymailatgmail');
/*Define the root url where the script will be found such as http://website */
DEFINE('WEBSITE_URL', 'http://mysait');

// Make the connection:
$dbc = @mysqli_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD,
DATABASE_NAME);
if (!$dbc) {
trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
}
?>


نمی دونم معادل این کد
mysql_set_charset('utf8',$conn);
که قبلا مشکل رو حل کرده بود چه جوری در این کدها تنظیم کنم؟
اگر راهنمایی کنید ممنون می شم.

bethoveen
دوشنبه 11 شهریور 1392, 17:19 عصر
اگه یکم سرچ میکردی تو فروم زیاد سوال کردن و زیادم جواب دادن
قبل از اجرای هر کوئری این کد رو اضافه کن و یا تو فایل connection بعد از کدهای اتصال قرار بده


mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES utf8_persian_ci");

علی رضائی
دوشنبه 11 شهریور 1392, 17:36 عصر
تست کردم درست نشد دوباره در دیتابیس به صورت حروف ناخوانا درج می شه؟
اگر امکان داره به کد فایل
connection
که در بالا گذاشتم. دقت کنید شاید بتونید یه راه حلی پیشنهاد بدید.

این هم کد های کوئری هستند کجا باید قرار بدم؟

$query_insert_user = "INSERT INTO `members` ( `Username`, `Email`, `Password`) VALUES ( '$name', '$Email', '$Password')";
$result_insert_user = mysqli_query($dbc, $query_insert_user);
if (!$result_insert_user) {
echo 'Query Failed ';
}
if (mysqli_affected_rows($dbc) == 1) { //If the Insert Query was successfull.

ابوذر محمودی
دوشنبه 11 شهریور 1392, 17:45 عصر
شما از mysqli استفاده می کنید نه mysql پس کوئری هم باید بر اساس mysqli باشه، میتونی بسته به نوع کدنویسیت از این دستورها استفاده کنی


$mysqli->query("SET NAMES 'utf8'");
$mysqli->set_charset("utf8");

@mysqli_query($this->db_connect_id, "SET NAMES 'utf8'");
@mysqli_set_charset($this->db_connect_id, 'utf8');

علی رضائی
دوشنبه 11 شهریور 1392, 18:23 عصر
منظور از
$this->
چیست؟
در برنامه روی این کد خطا می گیره!

ابوذر محمودی
دوشنبه 11 شهریور 1392, 19:00 عصر
عرض کردم که بسته به نوع کد نویسی یکی از این دستوراتو بزنین و چون از کلاس استفاده نکردین پس یکی از دو دستور اول رو بزنین.
یا این

$mysqli->query("SET NAMES 'utf8'");

یا اینو امتحان کنید

$mysqli->set_charset("utf8");

armini
پنج شنبه 14 شهریور 1392, 18:23 عصر
سلام دوستان
چه تفاوتی بین mysql و mysqli وجود داره؟؟؟؟هرکدومشون استفادشون فرق میکنه؟؟؟؟؟

MRmoon
پنج شنبه 14 شهریور 1392, 21:06 عصر
نه..... هر دو ماله ديتابيس mysql هست فقط mysqli كلاس بندي هم داره (اسم روشش يادم رفته!)

ابوذر محمودی
پنج شنبه 14 شهریور 1392, 23:24 عصر
mysql رو دیگه کم کم باید فراموش کنید مخصوصاً اینکه تو ورژن جدید php هم ساپورت نمیشه ، mysqli در واقع میشه گفت جایگزین mysql هست که نسبت به mysql از نظر سرعت و امکانات خیلی بهتره :


The mysqli extension, or as it is sometimes known, the MySQL improved extension, was developed to take advantage of new features found in MySQL systems versions 4.1.3 and newer. The mysqli extension is included with PHP versions 5 and later.

The mysqli extension has a number of benefits, the key enhancements over the mysql extension being:

Object-oriented interface

Support for Prepared Statements

Support for Multiple Statements

Support for Transactions

Enhanced debugging capabilities

Embedded server support

توضیحات بیشترو اینجا میتونی بخونی.
http://www.php.net/manual/en/mysqli.overview.php