pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

    <legend id='zgXVK'><style id='zgXVK'><dir id='zgXVK'><q id='zgXVK'></q></dir></style></legend>
      <bdo id='zgXVK'></bdo><ul id='zgXVK'></ul>

  1. <i id='zgXVK'><tr id='zgXVK'><dt id='zgXVK'><q id='zgXVK'><span id='zgXVK'><b id='zgXVK'><form id='zgXVK'><ins id='zgXVK'></ins><ul id='zgXVK'></ul><sub id='zgXVK'></sub></form><legend id='zgXVK'></legend><bdo id='zgXVK'><pre id='zgXVK'><center id='zgXVK'></center></pre></bdo></b><th id='zgXVK'></th></span></q></dt></tr></i><div class="quqizni" id='zgXVK'><tfoot id='zgXVK'></tfoot><dl id='zgXVK'><fieldset id='zgXVK'></fieldset></dl></div>
  2. <tfoot id='zgXVK'></tfoot>

    <small id='zgXVK'></small><noframes id='zgXVK'>

    1. 如何在沒有 SET NAMES 的情況下使用 PDO 指定排序規(guī)

      How to specify collation with PDO without SET NAMES?(如何在沒有 SET NAMES 的情況下使用 PDO 指定排序規(guī)則?)
      <i id='g9eTj'><tr id='g9eTj'><dt id='g9eTj'><q id='g9eTj'><span id='g9eTj'><b id='g9eTj'><form id='g9eTj'><ins id='g9eTj'></ins><ul id='g9eTj'></ul><sub id='g9eTj'></sub></form><legend id='g9eTj'></legend><bdo id='g9eTj'><pre id='g9eTj'><center id='g9eTj'></center></pre></bdo></b><th id='g9eTj'></th></span></q></dt></tr></i><div class="zs0gcut" id='g9eTj'><tfoot id='g9eTj'></tfoot><dl id='g9eTj'><fieldset id='g9eTj'></fieldset></dl></div>
        <bdo id='g9eTj'></bdo><ul id='g9eTj'></ul>
        • <small id='g9eTj'></small><noframes id='g9eTj'>

              <tbody id='g9eTj'></tbody>

              <tfoot id='g9eTj'></tfoot>
              • <legend id='g9eTj'><style id='g9eTj'><dir id='g9eTj'><q id='g9eTj'></q></dir></style></legend>
                本文介紹了如何在沒有 SET NAMES 的情況下使用 PDO 指定排序規(guī)則?的處理方法,對(duì)大家解決問題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

                問題描述

                我們可以在初始化 PDO 時(shí)顯式設(shè)置字符集為 utf8,只需在 dsn 字符串中添加charset=utf8"即可.但是如何在使用 PDO 時(shí)顯式指定 MySQL 連接中使用的排序規(guī)則?

                We can explicitly set the char set to utf8 when initializing PDO, just add "charset=utf8" to the dsn string. But how does one explicitly specify the collation used in MySQL connection when using PDO?

                我不想使用額外的查詢來執(zhí)行此操作:

                I don't want to use an additional query to do this:

                SET NAMES utf8 COLLATE utf8_unicode_ci;
                

                有沒有什么辦法不用SET NAMES"呢?或者,如果我不指定排序規(guī)則會(huì)有什么問題嗎?

                Is there any way without having to resort to "SET NAMES"? Or, would there be any problem if I don't specify a collation?

                推薦答案

                這里是二合一的答案.

                您可以在 DSN 或 MYSQL_ATTR_INIT_COMMAND(連接選項(xiàng))中設(shè)置它.

                You can set this in the DSN or as MYSQL_ATTR_INIT_COMMAND (connection options).

                DSN 更好,我認(rèn)為.

                DSN is better, i think.

                $connect = new PDO(
                  "mysql:host=$host;dbname=$db;charset=utf8", 
                  $user, 
                  $pass, 
                  array(
                    PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"
                  )
                ); 
                

                如果您指定 UTF-8,您將使用 utf8_general_ci 的默認(rèn)排序規(guī)則,除非您的數(shù)據(jù)庫表或字段使用不同的內(nèi)容.

                If you specify UTF-8 you are working with the default collation of utf8_general_ci, unless your db table or field uses something different.

                如果您希望整個(gè)服務(wù)器使用此默認(rèn)排序規(guī)則進(jìn)行響應(yīng),請(qǐng)使用配置指令:

                If you want the whole server to respond with this default collation then use configuration directives:

                collation_server=utf8_unicode_ci 
                character_set_server=utf8
                

                因此您不必每次都在連接時(shí)指定它.

                So you don't have to specify it on connection everytime.

                排序規(guī)則會(huì)影響字符的排序,并在數(shù)據(jù)庫中的表和字段上設(shè)置.查詢表時(shí),會(huì)遵守這些設(shè)置.確保它們已設(shè)置.使用 UTF-8 名稱和數(shù)據(jù)庫中設(shè)置的排序規(guī)則.

                The collations affect the sorting of chars and is set on the table and fields in your database. These settings are respected, when querying the table. Make sure they are set. Use UTF-8 names with the collation set in your db.

                您的評(píng)論:

                人們應(yīng)該知道字符集和排序規(guī)則是兩件不同的事情."

                "People should know char set and collation are 2 different things."

                讓我們引用 MySQL 手冊(cè)來證明這個(gè):

                Let's Quote from the MySQL Manual to proof this:

                一個(gè) SET NAMES 'charset_name' 語句相當(dāng)于這三個(gè)聲明:

                A SET NAMES 'charset_name' statement is equivalent to these three statements:

                SET character_set_client = charset_name;
                SET character_set_results = charset_name;
                SET character_set_connection = charset_name;
                

                character_set_connection 設(shè)置為 charset_name 也會(huì)隱式地將 collat??ion_connection 設(shè)置為默認(rèn)排序規(guī)則charset_name.

                Setting character_set_connection to charset_name also implicitly sets collation_connection to the default collation for charset_name.

                我的回答:它是隱式工作的,除非您的表顯式更改它.

                來自評(píng)論的問題:

                如何確保我不會(huì)把事情搞砸,因?yàn)槲业淖雷硬皇悄J(rèn)排序規(guī)則utf8_general_ci?

                How to make sure I don't mess things up as my tables are not the default collation utf8_general_ci?

                示例:列排序規(guī)則覆蓋表排序規(guī)則

                CREATE TABLE t1
                (
                    col1 CHAR(10) CHARACTER SET utf8 COLLATE utf8_unicode_ci
                ) CHARACTER SET latin1 COLLATE latin1_bin;
                

                如果在列上同時(shí)指定了 CHARACTER SET X 和 COLLATE Y,則使用字符集 X 和排序規(guī)則 Y.該列具有表列中指定的字符集 utf8 和排序規(guī)則 utf8_unicode_ci,而該表在 latin1 + latin1_bin 中.

                If both CHARACTER SET X and COLLATE Y are specified on a column, character set X and collation Y are used. The column has character set utf8 and collation utf8_unicode_ci as specified in the table column, while the table is in latin1 + latin1_bin.

                示例:通常使用表格整理

                如果未在列/字段上明確指定排序規(guī)則,則使用表排序規(guī)則:

                If collation is not explicitly specified on a column/Field, then the table collation is used:

                CREATE TABLE t1
                (
                    col1 CHAR(10)
                ) CHARACTER SET latin1 COLLATE latin1_bin;
                

                col1 具有排序規(guī)則 latin1_bin.

                col1 has collation latin1_bin.

                如果您想要 utf8_unicode_ci 整理,請(qǐng)將其設(shè)置為您的一般表格或列/字段.

                If you want utf8_unicode_ci collation, set it to your tables in general or to the columns/fields.

                這篇關(guān)于如何在沒有 SET NAMES 的情況下使用 PDO 指定排序規(guī)則?的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

                【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

                相關(guān)文檔推薦

                Deadlock exception code for PHP, MySQL PDOException?(PHP、MySQL PDOException 的死鎖異常代碼?)
                PHP PDO MySQL scrollable cursor doesn#39;t work(PHP PDO MySQL 可滾動(dòng)游標(biāo)不起作用)
                PHP PDO ODBC connection(PHP PDO ODBC 連接)
                Using PDO::FETCH_CLASS with Magic Methods(使用 PDO::FETCH_CLASS 和魔術(shù)方法)
                php pdo get only one value from mysql; value that equals to variable(php pdo 只從 mysql 獲取一個(gè)值;等于變量的值)
                MSSQL PDO could not find driver(MSSQL PDO 找不到驅(qū)動(dòng)程序)

              • <tfoot id='vOiX3'></tfoot>
                <i id='vOiX3'><tr id='vOiX3'><dt id='vOiX3'><q id='vOiX3'><span id='vOiX3'><b id='vOiX3'><form id='vOiX3'><ins id='vOiX3'></ins><ul id='vOiX3'></ul><sub id='vOiX3'></sub></form><legend id='vOiX3'></legend><bdo id='vOiX3'><pre id='vOiX3'><center id='vOiX3'></center></pre></bdo></b><th id='vOiX3'></th></span></q></dt></tr></i><div class="ol5ow0f" id='vOiX3'><tfoot id='vOiX3'></tfoot><dl id='vOiX3'><fieldset id='vOiX3'></fieldset></dl></div>
                    <tbody id='vOiX3'></tbody>

                  1. <small id='vOiX3'></small><noframes id='vOiX3'>

                        <bdo id='vOiX3'></bdo><ul id='vOiX3'></ul>
                      • <legend id='vOiX3'><style id='vOiX3'><dir id='vOiX3'><q id='vOiX3'></q></dir></style></legend>

                          主站蜘蛛池模板: 高防护蠕动泵-多通道灌装系统-高防护蠕动泵-www.bjhuiyufluid.com慧宇伟业(北京)流体设备有限公司 | 台湾HIWIN上银直线模组|导轨滑块|TBI滚珠丝杆丝杠-深圳汉工 | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 合金耐磨锤头_破碎机锤头_郑州市德勤建材有限公司 | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 耐高温风管_耐高温软管_食品级软管_吸尘管_钢丝软管_卫生级软管_塑料波纹管-东莞市鑫翔宇软管有限公司 | 高压无油空压机_无油水润滑空压机_水润滑无油螺杆空压机_无油空压机厂家-科普柯超滤(广东)节能科技有限公司 | 储能预警-储能消防系统-电池舱自动灭火装置-四川千页科技股份有限公司官网 | 脉冲除尘器,除尘器厂家-淄博机械 | 层流手术室净化装修-检验科ICU改造施工-华锐净化工程-特殊科室建设厂家 | 西宁装修_西宁装修公司-西宁业之峰装饰-青海业之峰墅级装饰设计公司【官网】 | [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 色油机-色母机-失重|称重式混料机-称重机-米重机-拌料机-[东莞同锐机械]精密计量科技制造商 | 德国EA可编程直流电源_电子负载,中国台湾固纬直流电源_交流电源-苏州展文电子科技有限公司 | 长春网站建设,五合一网站设计制作,免费优化推广-长春网站建设 | 山东石英砂过滤器,除氟过滤器「价格低」-淄博胜达水处理 | 齿辊分级破碎机,高低压压球机,立式双动力磨粉机-郑州长城冶金设备有限公司 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 多功能真空滤油机_润滑油全自动滤油机_高效真空滤油机价格-重庆润华通驰 | 红外光谱仪维修_二手红外光谱仪_红外压片机_红外附件-天津博精仪器 | 远程会诊系统-手术示教系统【林之硕】医院远程医疗平台 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 不发火防静电金属骨料_无机磨石_水泥自流平_修补砂浆厂家「圣威特」 | 烽火安全网_加密软件、神盾软件官网 | 飞扬动力官网-广告公司管理软件,广告公司管理系统,喷绘写真条幅制作管理软件,广告公司ERP系统 | 不锈钢发酵罐_水果酒发酵罐_谷物发酵罐_山东誉诚不锈钢制品有限公司 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 螺杆式冷水机-低温冷水机厂家-冷冻机-风冷式-水冷式冷水机-上海祝松机械有限公司 | 山东钢衬塑罐_管道_反应釜厂家-淄博富邦滚塑防腐设备科技有限公司 | 磁力加热搅拌器-多工位|大功率|数显恒温磁力搅拌器-司乐仪器官网 | PVC快速门-硬质快速门-洁净室快速门品牌厂家-苏州西朗门业 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 猪I型/II型胶原-五克隆合剂-细胞冻存培养基-北京博蕾德科技发展有限公司 | 电镀标牌_电铸标牌_金属标贴_不锈钢标牌厂家_深圳市宝利丰精密科技有限公司 | 致胜管家软件服务【在线免费体验】 | 郑州巴特熔体泵有限公司专业的熔体泵,熔体齿轮泵与换网器生产厂家 | 药品冷藏箱厂家_低温冰箱_洁净工作台-济南欧莱博电子商务有限公司官网 | C形臂_动态平板DR_动态平板胃肠机生产厂家制造商-普爱医疗 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | 精密模具-双色注塑模具加工-深圳铭洋宇通 | 浙江皓格药业有限公司|