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

کمک و پشتیبانی => برنامه‌سازی => نویسنده: rahmani در 13 آذر 1392، 01:27 ب‌ظ

عنوان: ذخیره مقادیر فارسی در جدول پایگاه داده های mysql با PHP
ارسال شده توسط: rahmani در 13 آذر 1392، 01:27 ب‌ظ
سلام
من یک برنامه نوشتم که ویژگی های تعداد بسیار کمی مقاله فارسی را از اینترنت گرفته و در جدول پایگاه داده ها ذخیره می کند  از انجا که این ویژگی ها فارسی هست من هم collation را برای جدول و پایگاه داده و برخی ستون ها utf8mb4_persian_ci انتخاب کرده ام اما متاسفانه بازهم با حروف ناشناس در جدول پایگاه داده نمایش داده می شود شما می دانید مشکل از کجاست؟
برای اطمینان از اینکه ویژگی ها به درستی انتخاب شده اند ان ها را در مرورگر هم چاپ کرده ام که شکر خدا در اینجا درست نشان می دهد

در ضمن یک سطر هم به صورت دستی و بدون استفاده از برنامه درج کردم این سطر درست ذخیره و نمایش داده می شود
سپاسگزارم
عنوان: پاسخ : ذخیره مقادیر فارسی در جدول پایگاه داده ها
ارسال شده توسط: rahmani در 13 آذر 1392، 02:30 ب‌ظ
سلام

بعد از این که به پایگاه داده وصل شدیم یک query به شکل زیر اجرا می کنیم.
mysql_query("set names utf8");
collation راهم utf8-persian_ci تعریف می کنیم.
عنوان: پاسخ : ذخیره مقادیر فارسی در جدول پایگاه داده ها
ارسال شده توسط: xubuntu4iran در 13 آذر 1392، 03:45 ب‌ظ
زبان و پایگاه دادتو تو عنوان مشخص کن!
عنوان: پاسخ : ذخیره مقادیر فارسی گرفته شده ازاینترنت در جدول پایگاه داده mysql با PHP
ارسال شده توسط: rahmani در 14 آذر 1392، 12:21 ب‌ظ
سلام
من می خوام یک رشته فارسی را که از اینترنت گرفتم در جدول ذخیره کنم<?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'در این مثال خاص رشته مورد نظر این هست: لغزش «شبه گوه اي سرچشمه» و روشهاي مقابله با آن
عنوان: پاسخ : ذخیره مقادیر فارسی در جدول پایگاه داده های mysql با PHP
ارسال شده توسط: rahmani در 14 آذر 1392، 01:11 ب‌ظ
سلام
مشکل از متغیر دیگری بود که این کار را برایش نکرده بودم و شامل ' بود

<?php
$Title substr($Title,$TitleStart,$TitleEnd-$TitleStart);
$Title str_replace("'","''",$Title);
?>