PDA

View Full Version : سوال: مشکل در ذخیره متن در دیتابیس با utf8



h.rezaee
دوشنبه 22 مهر 1392, 15:10 عصر
سلام. بنده برای ذخیره اطلاعات در دیتابیس از Stored Procedure استفاده می کنم. زمانی که بر روی لوکال هاست سیستم خودم تست می کنم بدون هیچ مشکلی ذخیره به درستی انجام میشه ولی وقتی که بر روی هاست اصلی ذخیره کردم با مشکل مواجه شدم و اون مشکل هم اینه که به جای ثبت متن ؟ نمایش داده می شود.
بنده کد ها رو می زارم ممنون میشم دوستان راهنمایی بفرمایند.
SP مربوط به سمت Mysql:

CREATE PROCEDURE `sp_txttbl_Insert`(IN _txttitle varchar(500), IN _category int, IN _bestpic varchar(500), IN _summer text, IN _txt text)
BEGIN
SET NAMES utf8;
INSERT INTO txttbl
(txttitle , category , bestpic , summer , txt )
VALUES(_txttitle , _category , _bestpic , _summer , _txt );
END

و کدهای مربوط به CAll کردن این SP:

$sql = 'CALL `sp_txttbl_Insert`(:txttitle, :category, :bestpic, :summer, :txt)';
$params = array (':txttitle' => $txttitle, ':category' => $category, ':bestpic' => $bestpic, ':summer' => $summer, ':txt' => $txt);
return DatabaseHandler::Execute($sql, $params);

mahmod2000
دوشنبه 22 مهر 1392, 15:14 عصر
روی phpmyadmin هاست در قسمت option چک کنید ببینید charset دیتابیس utf-8 هست یا نه

h.rezaee
دوشنبه 22 مهر 1392, 15:19 عصر
روی phpmyadmin هاست در قسمت option چک کنید ببینید charset دیتابیس utf-8 هست یا نه
ممنون . منظورتون دقیقا کدوم قسمت هستش؟

h.rezaee
دوشنبه 22 مهر 1392, 15:25 عصر
ببینید بنده در قسمت Collation (http://yavand-a.ir/phpMyAdmin/db_structure.php?db=yavandai_db&token=cb63f03d9a76eeb81410d7d3fad746f2&pos=0&sort=collation&sort_order=ASC) مقدار رو utf8 general_ci گذاشتم

mahmod2000
دوشنبه 22 مهر 1392, 16:00 عصر
اگر مطمئنید که charset روی utf-8 هست..
کلاس DatabaseHandler رو نگاه کنید و توش این query ها رو اجرا کنید


$connect->query("SET CHARACTER SET utf8");
$connect->query("SET CHARACTER_SET_CONNECTION=utf8");
$connect->query("SET NAMES UTF8");


به جای متغیر connect که نوشتم متغیری که به دیتابیس کانکت میشه رو بنویسید

h.rezaee
دوشنبه 22 مهر 1392, 16:06 عصر
ممنون . مشکل برطرف شد.