当前位置: 网站首页>小程序开发>网站优化

启东400电话办理【启东网站公司】启东百度优化、启东域名注册、启东网店美工、启东微信公众号托管

发表日期: 2021-04-26 09:57:56 浏览次数:103

启东400电话办理【启东网站公司】启东百度优化、启东域名注册、启东网店美工、启东微信公众号托管



启东市,江苏省直辖,南通市代管,位于江苏省东南端,长江入海口北岸,是江苏省日出最早的地方。 [1]  户籍总人口110.35万,常住人口94.95万(2019年)。 [2]  截至2020年6月,启东市下辖9个镇。 [3] 

后周显德五年(958年),置海门县于东布洲,隶于通州,海门县域包括今启东中部、北部地区。民国十七年(1928年),于崇明外沙设启东县。1989年,撤销启东县,设立县级启东市。 [14]  [56] 

启东是全国对外开放口岸 [4]  、中国建筑之乡 [5]  、国家卫生城市 [6]  、国家园林城市 [7]  、全国文明城市 [8]  、国家级生态示范区 [9]  、节水型社会建设达标县 [10]  、紧密型县域医共体建设试点县 [11]  、革命文物保护利用片区分县 [12]  ,海洋经济之乡、电动工具之乡、建筑之乡、教育之乡、版画之乡。 [1] 

2019年,启东市地区生产总值1157.55亿元,第一产业增加值79.64亿元,第二产业增加值581.29亿元,第三产业增加值496.62亿元。三次产业比为6.9:50.2:42.9。人均地区生产总值121879元。

希望保留状态时,需要使用同一个实例。例如:

// 获取一个新的实例$user = DI()->notorm->user;  $user->where('age > ?', 18);// 相当于:age > 18 AND name LIKE '%dog%'$user->where('name LIKE ?', '%dog%');复制代码

可以看到,第二次查询后,会把前面的查询条件也累加上。

不希望保留状态时,需要每次使用新的实例。例如:

// 获取一个新的实例$user = DI()->notorm->user;  $user->where('age > ?', 18);// 重新获取新的实例$user = DI()->notorm->user;  // 此时只有:name LIKE '%dog%'$user->where('name LIKE ?', '%dog%');复制代码

因为每次都是使用新的实例,所以不会出现条件叠加的情况。

关于这两者的使用场景,项目可根据情况选用,通常使用不保留状态的写法。在全局方式获取后并指定表名取得的表实例,和局部方式获取的表实例,每次都会返回新的表实例。

2.5.2 数据库配置

数据库的配置文件为./Config/dbs.php,默认使用的是MySQL数据库,所以需要配置MySQL的连接信息。servers选项用于配置数据库服务器相关信息,可以配置多组数据库实例,每组包括数据库的账号、密码、数据库名字等信息。不同的数据库实例,使用不同标识作为下标。  

表2-11 MySQL数据库配置项

servers数据库配置项

说明

host

数据库域名

name

数据库名字

user

数据库用户名

password

数据库密码

port

数据库端口

charset

数据库字符集

tables选项用于配置数据库表的表前缀、主键字段和路由映射关系,可以配置多个表,下标为不带表前缀的表名,其中__default__下标选项为缺省的数据库路由,即未配置的数据库表将使用这一份默认配置。

表2-12 表配置项

tables表配置项

说明

prefix

表前缀

key

表主键

map

数据库实例映射关系,可配置多组。每组格式为:array('db' => 服务器标识, 'start' => 开始分表标识, 'end' => 结束分表标识),start和end要么都不提供,要么都提供

例如默认数据库配置为:

return array(
    /**
     * DB数据库服务器集群
     */
    'servers' => array(
        'db_demo' => array(                         //服务器标识
            'host'      => 'localhost',             //数据库域名
            'name'      => 'phalapi',               //数据库名字
            'user'      => 'root',                  //数据库用户名
            'password'  => '',                      //数据库密码
            'port'      => '3306',                  //数据库端口
            'charset'   => 'UTF8',                  //数据库字符集
        ),
    ),

    /**
     * 自定义路由表
     */
    'tables' => array(
        //通用路由
        '__default__' => array(
            'prefix' => 'tbl_',
            'key' => 'id',
            'map' => array(
                array('db' => 'db_demo'),
            ),
        ),
    ),);复制代码

其中,在servers中配置了名称为dbdemo数据库实例,其host为localhost,名称为phalapi,用户名为root等。在tables中,只配置了通用路由,并且表前缀为tbl,主键均为id,并且全部使用db_demo数据库实例。

温馨提示:当tables中配置的db数据库实例不存在servers中时,将会提示数据库配置错误。

如何排查数据库连接错误?

普通情况下,数据库连接失败时会这样提示:

{
    "ret": 500,
    "data": [],
    "msg": "服务器运行错误: 数据库db_demo连接失败"}复制代码

考虑到生产环境不方便爆露服务器的相关信息,故这样简化提示。当在开发过程中,需要定位数据库连接失败的原因时,可使用debug调试模式。开启调试后,当再次失败时,会看到类似这样的提示:

{
    "ret": 500,
    "data": [],
    "msg": "服务器运行错误: 数据库db_demo连接失败,异常码:1045,错误原因:SQLSTATE[28000] [1045] ... ..."}复制代码

然后,便可根据具体的错误提示进行排查解决。

2.5.3 Model基类的使用

表数据入口模式

我们一直在考虑,是否应该提供数据库的基本操作支持,以减少开发人员重复手工编写基本的数据操作。最后,我们认为是需要的。继而引发了新的问题:是以继承还是以委托来支持?

委托有助于降低继承的层级,但却需要编写同类的操作以完成委托。所以,这里提供了基于NotORM的Model基类:PhalApi_Model_NotORM。但提供这个基类还是会遇到一些问题,例如:如何界定基本操作?如何处理分表存储?如何支持定制化?

由于我们这里的Model使用了“表数据入口”模式,而不是“行数据入口”,也不是“活动纪录”,也不是复杂的“数据映射器”。所以在使用时可以考虑是否需要此基类。即使这样,你也可以很轻松转换到“行数据入口”和“活动纪录”模式。这里,PhalApi中的Model是更广义上的数据源层(后面会有更多说明),因此对应地PhalApi_Model_NotORM基类充当了数据库表访问入口的对象,处理表中所有的行。

在明白了Model基类的背景后,再来了解其具体的操作和如何继承会更有意义。具体的操作与数据表的结构相关,在约定编程下:即每一个表都有一个主键(通常为id,也可以自由配置)以及一个序列化LOB字段ext_data。我们很容易想到Model接口的定义。为了突出接口签名,注释已移除,感兴趣的同学可查看源码。

c51c866ffa1ab3457f2021e8bbdbcc1.jpg

启东400电话办理启东网站公司启东百度优化、启东域名注册、启东网店美工、启东微信公众号托管

400-111-6878
服务热线
顶部

备案号: 苏ICP备11067224号

CopyRight © 2011 书生商友信息科技 All Right Reserved

24小时服务热线:400-111-6878   E-MAIL:1120768800@qq.com   QQ:1120768800

  网址: http://www.768800.com  网站建设上往建站

关键词: 网站建设| 域名邮箱| 服务器空间| 网站推广| 上往建站| 网站制作| 网站设计| 域名注册| 网络营销| 网站维护|

企业邮箱| 虚拟主机| 网络建站| 网站服务| 网页设计| 网店美工设计| 网站定制| 企业建站| 网站设计制作| 网页制作公司|

400电话办理| 书生商友软件| 葬花网| 调温纤维| 海洋馆运营维护| 北京保安公司| 殡仪馆服务| 殡葬服务| 苏州殡葬一条龙| 朝阳殡葬| 苏州殡葬服务|

预约专家

欢迎您免费咨询,请填写以下信息,我们收到后会尽快与您联系

  

服务热线:400-111-6878