أول ملاحظة :
ملف config.php يعمل جيدا اذا كان هكذا :
كود PHP:
<?php
// DB login information
$username = 'root';
$password = 'root';
$database = 'db_test';
$host = 'localhost';
$Charset = "utf8";
$link = mysql_connect($host, $username, $password);
$char = mysql_query("SELECT CHARSET (DATABASE())") or die (mysql_error());
$coll = mysql_query("SELECT COLLATION (DATABASE())") or die (mysql_error());
$ch= mysql_fetch_array($char);
$cl= mysql_fetch_array($coll);
echo "char = ".$ch[0]."<br />";
echo "coll = ".$cl[0]."<br />";
//mysql_set_charset($Charset,$link);
//mysql_query("SET NAMES $Charset;", $link) or die ('Erreur de connexion au serveur: '.mysql_error());
mysql_select_db($database);
//mysql_set_charset("utf8");
?>
وملف update.sql الناتج يكون هكذا :
كود PHP:
UPDATE `tab2` SET `name` ='عادل',
`country`='سوريا',
`town`='حماة '
where `id` = '8' ;
UPDATE `tab2` SET `name` ='علي',
`country`='العراق',
`town`='البغدادية '
where `id` = '7' ;
UPDATE `tab2` SET `name` ='فيصل',
`country`='السعودية',
`town`='الرياض '
where `id` = '6' ;
UPDATE `tab2` SET `name` ='احمد',
`country`='مصر',
`town`='بور سعيد '
where `id` = '5' ;
UPDATE `tab2` SET `name` ='عمر',
`country`='العراق',
`town`='كربلاء '
where `id` = '4' ;
اما نزعت سلاش التعليقات من امام السطور :
كود PHP:
mysql_set_charset($Charset,$link);
mysql_query("SET NAMES $Charset;", $link) or die ('Erreur de connexion au serveur: '.mysql_error());
mysql_set_charset("utf8");
فسيصبح ملف update.sql غير مقروء هكذا :
كود PHP:
UPDATE `tab2` SET `name` ='ط£ع‘ط£â€،ط£عˆط£طŒ',
`country`='ط£â€œط£آ¦ط£â€کط£آط£â€،',
`town`='ط£ع†ط£آ£ط£â€،ط£â€° '
where `id` = '8' ;
UPDATE `tab2` SET `name` ='ط£ع‘ط£طŒط£آ',
`country`='ط£â€،ط£طŒط£ع‘ط£â€کط£â€،ط£â€چ',
`town`='ط£â€،ط£طŒط£ث†ط£â€؛ط£عˆط£â€،ط£عˆط£آط£â€° '
where `id` = '7' ;
UPDATE `tab2` SET `name` ='ط£â€Œط£آط£â€¢ط£طŒ',
`country`='ط£â€،ط£طŒط£â€œط£ع‘ط£آ¦ط£عˆط£آط£â€°',
`town`='ط£â€،ط£طŒط£â€کط£آط£â€،ط£â€“ '
where `id` = '6' ;
UPDATE `tab2` SET `name` ='ط£â€،ط£ع†ط£آ£ط£عˆ',
`country`='ط£آ£ط£â€¢ط£â€ک',
`town`='ط£ث†ط£آ¦ط£â€ک ط£â€œط£ع‘ط£آط£عˆ '
where `id` = '5' ;
UPDATE `tab2` SET `name` ='ط£ع‘ط£آ£ط£â€ک',
`country`='ط£â€،ط£طŒط£ع‘ط£â€کط£â€،ط£â€چ',
`town`='ط£ع؛ط£â€کط£ث†ط£طŒط£â€،ط£ظ¾ '
where `id` = '4' ;
ولكن هذه السطور الا احتاجها في عملية الادراج بعد تحويل القاعدة الى ترميز UTF8 ؟
في هذه الحالة وجب ايجاد ملفي اتصال :
1 - الاول خاص بالاسترجاع عندما تكون القاعدة بترميز latin1.
2 - الثاني خاص بالادراج عندما تصبح القاعدة بترميز utf8.
:con2:
ملف get_datas.php المستعمل (محفوظ بصيغة UTF8 without BOM)
كود PHP:
<?php
header('(anti-spam-(anti-spam-content-type:)) text/html; charset=utf-8' );
include ("config.php");
$sql_text="";
$sql="select * from tab2 order by id DESC";
$res=mysql_query($sql);
mysql_query("SET NAMES 'utf8'");
mysql_query('SET CHARACTER SET utf8');
while($row=mysql_fetch_object($res)){
$name = iconv('windows-1256','utf-8',$row->name);
$country = iconv('windows-1256','utf-8',$row->country);
$town = iconv('windows-1256','utf-8',$row->town);
$sql_text.="UPDATE `tab2` SET `name` ='$name',
`country`='$country',
`town`='$town '
where `id` = '$row->id' ;
";
}
highlight_string($sql_text);
$file="update.sql";
$fp=fopen($file, "w");
fwrite($fp,$sql_text);
fclose($fp);
?>