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>

                          主站蜘蛛池模板: 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 北京翻译公司_同传翻译_字幕翻译_合同翻译_英语陪同翻译_影视翻译_翻译盖章-译铭信息 | 成都中天自动化控制技术有限公司| 铝箔袋,铝箔袋厂家,东莞铝箔袋,防静电铝箔袋,防静电屏蔽袋,防静电真空袋,真空袋-东莞铭晋让您的产品与众不同 | 透平油真空滤油机-变压器油板框滤油机-滤油车-华之源过滤设备 | 天津暖气片厂家_钢制散热器_天津铜铝复合暖气片_维尼罗散热器 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | 西装定制/做厂家/公司_西装订做/制价格/费用-北京圣达信西装 | 合肥注册公司|合肥代办营业执照、2024注册公司流程 | 电缆桥架生产厂家_槽式/梯式_热镀锌线槽_广东东莞雷正电气 | 氢氧化钾厂家直销批发-济南金昊化工有限公司| 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | ge超声波测厚仪-电动涂膜机-电动划格仪-上海洪富 | 深圳昂为官网-气体分析仪,沼气分析仪,动态配气仪,气体传感器厂家 | 厂房出售_厂房仓库出租_写字楼招租_土地出售-中苣招商网-中苣招商网 | 档案密集柜_手动密集柜_智能密集柜_内蒙古档案密集柜-盛隆柜业内蒙古密集柜直销中心 | 润东方环保空调,冷风机,厂房车间降温设备-20年深圳环保空调生产厂家 | 巨野月嫂-家政公司-巨野县红墙安康母婴护理中心 | ORP控制器_ORP电极价格-上优泰百科 | 全国国际化学校_国际高中招生_一站式升学择校服务-国际学校网 | 超声波流量计_流量标准装置生产厂家 _河南盛天精密测控 | 冷却塔改造厂家_不锈钢冷却塔_玻璃钢冷却塔改造维修-广东特菱节能空调设备有限公司 | 无菌水质袋-NASCO食品无菌袋-Whirl-Pak无菌采样袋-深圳市慧普德贸易有限公司 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 真空泵厂家_真空泵机组_水环泵_旋片泵_罗茨泵_耐腐蚀防爆_中德制泵 | BAUER减速机|ROSSI-MERSEN熔断器-APTECH调压阀-上海爱泽工业设备有限公司 | 高清视频编码器,4K音视频编解码器,直播编码器,流媒体服务器,深圳海威视讯技术有限公司 | 品牌设计_VI设计_电影海报设计_包装设计_LOGO设计-Bacross新越品牌顾问 | 膜结构_ETFE膜结构_膜结构厂家_膜结构设计-深圳市烨兴智能空间技术有限公司 | 钢格板|镀锌钢格板|热镀锌钢格板|格栅板|钢格板|钢格栅板|热浸锌钢格板|平台钢格板|镀锌钢格栅板|热镀锌钢格栅板|平台钢格栅板|不锈钢钢格栅板 - 专业钢格板厂家 | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 小区健身器材_户外健身器材_室外健身器材_公园健身路径-沧州浩然体育器材有限公司 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 东莞螺丝|东莞螺丝厂|东莞不锈钢螺丝|东莞组合螺丝|东莞精密螺丝厂家-东莞利浩五金专业紧固件厂家 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 杰福伦_磁致伸缩位移传感器_线性位移传感器-意大利GEFRAN杰福伦-河南赉威液压科技有限公司 | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 铝合金重力铸造_铝合金翻砂铸造_铝铸件厂家-东莞市铝得旺五金制品有限公司 | 间苯二酚,间苯二酚厂家-淄博双和化工 | 农产品溯源系统_农产品质量安全追溯系统_溯源系统 |