TP查询不支持SQLSERVER的中文类型参数nvarchar吗

浏览:722 发布日期:2015/08/22 分类:求助交流
Onethink中获取分组菜单,分组是中文名,改用SqlServer数据库后,如何查询出相应的菜单名,下面参数$g是中文

// 按照分组生成子菜单树
                    foreach ($groups as $g) {
                        $map = array('group'=> $g);
                        if(isset($to_check_urls)){
                            if(empty($to_check_urls)){
                                // 没有任何权限
                                continue;
                            }else{
                                $map['url'] = array('in', $to_check_urls);
                            }
                        }
                        $map['pid']    =    $item['id'];
                        $map['hide']    =    0;
                        if(!C('DEVELOP_MODE')){ // 是否开发者模式
                            $map['is_dev']    =    0;
                        }

                        // p($map);die;
                        $menuList = M('Menu')->where($map)->field('id,pid,title,url,tip,sort')->order('sort asc')->select();
                        p(M()->getlastsql());

打印出来后的语句
SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY sort asc) AS ROW_NUMBER FROM (SELECT  [id],[pid],[title],[url],[tip],[sort] FROM [onethink_menu] WHERE [group] = '数据备份' AND [pid] = 68 AND [hide] = 0 AND [is_dev] = 0 ) AS thinkphp) AS T1 

正常SQLSERVER里面中文nvarchar类型,要加个大写的N

SELECT T1.* FROM (SELECT thinkphp.*, ROW_NUMBER() OVER ( ORDER BY sort asc) AS ROW_NUMBER FROM (SELECT  [id],[pid],[title],[url],[tip],[sort] FROM [onethink_menu] WHERE [group] = N'数据备份' AND [pid] = 68 AND [hide] = 0 AND [is_dev] = 0 ) AS thinkphp) AS T1 
最佳答案
评论( 相关
后面还有条评论,点击查看>>