2013-05-10 2 views
0

Я бег это в MySQL:Поиска греческих символов также возвращает латинские символы

SELECT id, action FROM table1 WHERE action in ('α','δ','μ','Α','Δ','Μ') 

Обратите внимание, что символы являются греческими, а также, я использую UTF-8 везде. Почему этот запрос также возвращает строки, где action = 'a' или 'A' (latin)?

Это весь сценарий:

$query = "SELECT id, action FROM table1 WHERE action in ('α','δ','μ','Α','Δ','Μ') ORDER BY id ASC"; 
    $result = mysql_query($query) or die(mysql_error()); 
    $row = mysql_fetch_assoc($result); 
    $totalRows_result = mysql_num_rows($result); 

    if($totalRows_result > 0) { 
     do { 
      $str = $row['action']; 
      $greek = array('α','δ','μ','Α','Δ','Μ'); 
      $latin = array('A','D','M','A','D','M'); 
      $validstr = str_replace($greek, $latin, $str); 

      $q = "UPDATE table1 SET action='$validstr' WHERE id='".$row['id']."'"; 
      $res = mysql_query($q) or die(mysql_error());   
     } while ($row = mysql_fetch_assoc($result)); 
    } 

ответ

0

попробуйте следующее:

после подключения к MySQL, сделать этот запрос, чтобы убедиться, что вы используете UTF8:

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

ИЛИ Посмотрите, может ли это вам помочь

<?php header("Content-type: text/html; charset=utf-8"); ?> 

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 

Вы можете попробовать это

<?php 
$link1 = mysql_connect('localhost','user1','pass1',TRUE); 
mysql_selectdb('db1',$link1); 
mysql_set_charset('utf8',$link1); 
?> 
+0

Я сделал это уже – bikey77

+1

использование 'mysql_set_charset'..but лучше использовать' PDO' или 'mysqli' – bitWorking

+0

@redreggae хороший предложение – Yogus

Смежные вопросы