字符a与MySQL数据库中的A相同

Ion*_*ian 2 php mysql unicode utf-8

我想开发一个简短的url系统,就像我一样,我在数据库中遇到了问题.我无法在数据库中的a和A之间产生差异.

这是我在数据库中保存的内容:

1   aaaaaaa a   a   a   a   a   a   a   aaaaaaa 1340802562  
3   aaaaaab a   a   a   a   a   a   b   aaaaaab 1340802562  
5   aaaaaac a   a   a   a   a   a   c   aaaaaac 1340802562  
7   aaaaaad a   a   a   a   a   a   d   aaaaaad 1340802562
Run Code Online (Sandbox Code Playgroud)

在id 2,我应该有aaaaaaB.这是表结构属性:

1   id  bigint(20)      UNSIGNED    Nu  None    AUTO_INCREMENT    Schimbare   Arunc?     More 
     2  combination varchar(8)  utf8_general_ci     Nu  None          Schimbare   Arunc?     More 
     3  a   varchar(2)  utf32_general_ci        Nu  None          Schimbare   Arunc?     More 
     4  b   varchar(2)  utf8_general_ci     Nu  None          Schimbare   Arunc?     More 
     5  c   varchar(2)  utf8_general_ci     Nu  None          Schimbare   Arunc?     More 
     6  d   varchar(2)  utf8_general_ci     Nu  None          Schimbare   Arunc?     More 
     7  e   varchar(2)  utf8_general_ci     Nu  None          Schimbare   Arunc?     More 
     8  f   varchar(2)  utf8_general_ci     Nu  None          Schimbare   Arunc?     More 
     9  g   varchar(2)  utf32_general_ci        Nu  None          Schimbare   Arunc?     More 
     10 url varchar(255)    utf8_general_ci     Nu  None          Schimbare   Arunc?     More 
     11 time    int(10)         Nu  None          Schimbare   Arunc?     More 
     12 status  int(10)         Nu  None          Schimbare   Arunc?     More 
Run Code Online (Sandbox Code Playgroud)

这是代码:

<?php
require_once('Controller.php');

class ShortLink extends Controller {
  public $chars="aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPq1Qr2Rs3St4Tu5Uv6Vw7Wx8Xy9Yz0Z";
  public function generate() {
    $this->DBconnect();
    echo $length = strlen($this->chars);
    for($a=0;$a<$length;$a++) {
      for($b=0;$b<$length;$b++) {
        for($c=0;$c<$length;$c++) {
          for($d=0;$d<$length;$d++) {
            for($e=0;$e<$length;$e++) {
              for($f=0;$f<$length;$f++) {
                for($g=0;$g<$length;$g++) {
                  $combination = $this->chars[$a].$this->chars[$b].$this->chars[$c].$this->chars[$d].$this->chars[$e].$this->chars[$f].$this->chars[$g];
                  mysql_query("
                    INSERT INTO `short` (
                      `id`,
                      `combination`,
                      `a`,
                      `b`,
                      `c`,
                      `d`,
                      `e`,
                      `f`,
                      `g`,
                      `url`,
                      `time`,
                      `status`
                    )
                    VALUES (
                      NULL,  '".($combination)."', '".($this->chars[$a])."',  '".($this->chars[$b])."',  '".($this->chars[$c])."',  '".($this->chars[$d])."',  '".($this->chars[$e])."',  '".($this->chars[$f])."',  '".($this->chars[$g])."',  '".($combination)."',  '".(time())."',  '0');");
                }
              }
            }
          }
        }
      }
    }
    $this->DBdisconnect();
  }
}
$ShortLink = new ShortLink();
$ShortLink->generate();
?>
Run Code Online (Sandbox Code Playgroud)

Mat*_*all 11

看到所有这些utf8_general_ci?该_ci部分意味着整理是Case Insensitive.

http://dev.mysql.com/doc/refman/5.6/en/charset-unicode-sets.html