انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


توزیع گنو/لینوکس اوبونتو ۲۰ ساله شد 🎉

نویسنده موضوع: ذخیره مقادیر فارسی در جدول پایگاه داده های mysql با PHP  (دفعات بازدید: 4528 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام
من یک برنامه نوشتم که ویژگی های تعداد بسیار کمی مقاله فارسی را از اینترنت گرفته و در جدول پایگاه داده ها ذخیره می کند  از انجا که این ویژگی ها فارسی هست من هم collation را برای جدول و پایگاه داده و برخی ستون ها utf8mb4_persian_ci انتخاب کرده ام اما متاسفانه بازهم با حروف ناشناس در جدول پایگاه داده نمایش داده می شود شما می دانید مشکل از کجاست؟
برای اطمینان از اینکه ویژگی ها به درستی انتخاب شده اند ان ها را در مرورگر هم چاپ کرده ام که شکر خدا در اینجا درست نشان می دهد

در ضمن یک سطر هم به صورت دستی و بدون استفاده از برنامه درج کردم این سطر درست ذخیره و نمایش داده می شود
سپاسگزارم
« آخرین ویرایش: 13 آذر 1392، 06:10 ب‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام

بعد از این که به پایگاه داده وصل شدیم یک query به شکل زیر اجرا می کنیم.
mysql_query("set names utf8");
collation راهم utf8-persian_ci تعریف می کنیم.
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین xubuntu4iran

  • Hero Member
  • *
  • ارسال: 748
  • جنسیت : پسر
زبان و پایگاه دادتو تو عنوان مشخص کن!

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام
من می خوام یک رشته فارسی را که از اینترنت گرفتم در جدول ذخیره کنم<?php
$HTML file_get_html($Path);
$MetaDataStart strpos($HTML,"<table border='0' cellspacing='0' cellpadding='0' width='100%'>");
$MetaDataEnd strpos($HTML,"</div><br><div class='border'>");
$MetaData substr($HTML,$MetaDataStart,$MetaDataEnd $MetaDataStart);

$TitleStart 'عنوان مقاله';
$TitleEnd $HeaderStart 'سرفصل مربوط';

$TitleStart strpos($MetaData,$TitleStart);
$TitleEnd strpos($MetaData,$TitleEnd);
$Title substr($MetaData,$TitleStart,$TitleEnd-$TitleStart);
echo '<br>start title'.$TitleStart.' end '.$TitleEnd.'<BR>'; echo $Title.'<br>';
$TitleStart strpos($Title,":")+94
$TitleStart strpos($Title,"<span itemprop='name'>")+22;
$TitleEnd strpos($Title,'</span></font>');
$Title substr($Title,$TitleStart,$TitleEnd-$TitleStart);
$Title str_replace("'","''",$Title);
echo '<br>start '.$TitleStart.' end '.$TitleEnd.'<BR>'; echo $Title.'<br>';
?>
جالب هست بدونید وقتی در مرورگر چاپ می کنم درست نشان میدهد اما هنگام ذخیره در پایگاه داده ها خطای زیر را می دهد:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '3'در این مثال خاص رشته مورد نظر این هست: لغزش «شبه گوه اي سرچشمه» و روشهاي مقابله با آن
« آخرین ویرایش: 14 آذر 1392، 12:32 ب‌ظ توسط rahmani »
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني

آفلاین rahmani

  • Sr. Member
  • *
  • ارسال: 291
سلام
مشکل از متغیر دیگری بود که این کار را برایش نکرده بودم و شامل ' بود

<?php
$Title substr($Title,$TitleStart,$TitleEnd-$TitleStart);
$Title str_replace("'","''",$Title);
?>
اگر در صحنه حق و باطل زمان خويش نيستي، هر جا كه خواهي باش....
 دكتر علي شزيعتي مزيناني