好得很程序员自学网
  • 首页
  • 后端语言
    • C#
    • PHP
    • Python
    • java
    • Golang
    • ASP.NET
  • 前端开发
    • Angular
    • react框架
    • LayUi开发
    • javascript
    • HTML与HTML5
    • CSS与CSS3
    • jQuery
    • Bootstrap
    • NodeJS
    • Vue与小程序技术
    • Photoshop
  • 数据库技术
    • MSSQL
    • MYSQL
    • Redis
    • MongoDB
    • Oracle
    • PostgreSQL
    • Sqlite
    • 数据库基础
    • 数据库排错
  • CMS系统
    • HDHCMS
    • WordPress
    • Dedecms
    • PhpCms
    • 帝国CMS
    • ThinkPHP
    • Discuz
    • ZBlog
    • ECSHOP
  • 高手进阶
    • Android技术
    • 正则表达式
    • 数据结构与算法
  • 系统运维
    • Windows
    • apache
    • 服务器排错
    • 网站安全
    • nginx
    • linux系统
    • MacOS
  • 学习教程
    • 前端脚本教程
    • HTML与CSS 教程
    • 脚本语言教程
    • 数据库教程
    • 应用系统教程
  • 新技术
  • 编程导航
    • 区块链
    • IT资讯
    • 设计灵感
    • 建站资源
    • 开发团队
    • 程序社区
    • 图标图库
    • 图形动效
    • IDE环境
    • 在线工具
    • 调试测试
    • Node开发
    • 游戏框架
    • CSS库
    • Jquery插件
    • Js插件
    • Web框架
    • 移动端框架
    • 模块管理
    • 开发社区
    • 在线课堂
    • 框架类库
    • 项目托管
    • 云服务

当前位置:首页>后端语言>PHP
<tfoot draggable='sEl'></tfoot>

curd日志记录php php 日志

很多站长朋友们都不太清楚curd日志记录php,今天小编就来给大家整理curd日志记录php,希望对各位有所帮助,具体内容如下:

本文目录一览: 1、 thinkphp curd 还需要设置吗 2、 phpstorm有几种调试方法 3、 thinkphp 图书管理系统怎么做 curd thinkphp curd 还需要设置吗

ThinkPHP3.2.3新特性之:数据库设置

ThinkPHP3.2.3版本数据库驱动采用PDO完全重写,配置和使用上面也比之前版本更加灵活和强大,我们来了解下如何使用。

首先,3.2.3的数据库配置信息有所调整,完整的数据库设置包括:

/* 数据库设置 */

'DB_TYPE' => '', // 数据库类型

'DB_HOST' => '', // 服务器地址

'DB_NAME' => '', // 数据库名

'DB_USER' => '', // 用户名

'DB_PWD' => '', // 密码

'DB_PORT' => '', // 端口

'DB_PREFIX' => '', // 数据库表前缀

'DB_PARAMS' => array(), // 数据库连接参数

'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志

'DB_LITE' => false, // 使用数据库Lite模式

'DB_FIELDS_CACHE' => true, // 启用字段缓存

'DB_CHARSET' => 'utf8', // 数据库编码默认采用utf8

'DB_DEPLOY_TYPE' => 0, // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)

'DB_RW_SEPARATE' => false, // 数据库读写是否分离 主从式有效

'DB_MASTER_NUM' => 1, // 读写分离后 主服务器数量

'DB_SLAVE_NO' => '', // 指定从服务器序号

相对3.2.2版本来说,取消了如下设置参数:

'DB_FIELDTYPE_CHECK' // 3.2.3强制进行字段类型检测了

'DB_SQL_BUILD_CACHE' // 3.2.3取消了SQL创建缓存

'DB_SQL_BUILD_QUEUE' // 3.2.3取消了SQL创建缓存

'DB_SQL_BUILD_LENGTH' // 3.2.3取消了SQL创建缓存

'DB_SQL_LOG' // 由新增的DB_DEBUG参数取代

'DB_BIND_PARAM' // 新版采用PDO 自动参数绑定 无需设置

新增的数据库设置参数包括:

'DB_DEBUG' //用于开启数据库调试模式,开启后即可记录SQL日志

'DB_LITE' // 是否采用数据库Lite模式连接 开启后只能使用原生SQL查询

3.2.2版本数据库的调试模式和项目的调试模式(由APP_DEBUG常量定义)是绑定的 ,3.2.3版本开始数据库的调试模式是独立设置(由DB_DEBUG参数设置)的。

DB_TYPE参数为数据库类型设置,目前支持的驱动包括mysql/sqlite/oracle/pgsql/sqlsrv/firebird(其他的数据库类型需要增加驱动),设置如下:

'DB_TYPE'=>'mysql', // 不再支持设置为PDO 也不再区分mysql和mysqli

数据库的连接信息,主要包括下面参数:

'DB_HOST' => '', // 服务器地址 采用IP地址

'DB_NAME' => '', // 数据库名

'DB_USER' => '', // 用户名

'DB_PWD' => '', // 密码

'DB_PORT' => '', // 端口 留空则取默认端口

'DB_CHARSET' => '', // 数据库编码

以上设置参数会在实例化PDO的时候自动转换为PDO的连接参数传入。

DB_DSN参数一般无需设置,系统的数据库驱动会进行默认设置,如果需要调整,请遵循PDO的相关数据库连接的DSN设置进行设置。

DB_PARAMS用于设置数据库的连接参数,会传入PDO实例化的第四个参数。

下面是一个典型的数据库全局设置:

'DB_TYPE' => 'mysql', // 数据库类型

'DB_HOST' => '192.168.1.10', // 服务器地址

'DB_NAME' => 'thinkphp', // 数据库名

'DB_USER' => 'root', // 用户名

'DB_PWD' => '1234', // 密码

'DB_PORT' => '3306', // 端口

'DB_PREFIX' => 'think_', // 数据库表前缀

'DB_CHARSET' => 'utf8', // 数据库编码

'DB_DEBUG' => TRUE, // 数据库调试模式 开启后可以记录SQL日志

如果在模型类中设置单独的数据库连接信息connection属性,可以使用下面的数组或者字符串方式:

//在模型里单独设置数据库连接信息

namespace Home\Model;

use Think\Model;

class UserModel extends Model{

//采用数组方式定义

protected $connection = array(

'db_type' => 'mysql',

'db_user' => 'root',

'db_pwd' => '1234',

'db_host' => '192.168.1.10',

'db_port' => '3306',

'db_name' => 'thinkphp',

'db_charset' => 'utf8',

);

}

注意:在模型中设置的数据库连接设置参数采用全局配置的小写名。

或者采用字符串方式定义,格式为:

数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集

例如:

//在模型里单独设置数据库连接信息

namespace Home\Model;

use Think\Model;

class UserModel extends Model{

// 使用字符串方式定义

protected $connection = 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';

}

也可以通过配置文件设置,例如:

//数据库配置1

'DB_CONFIG1' => array(

'db_type' => 'mysql',

'db_user' => 'root',

'db_pwd' => '1234',

'db_host' => '192.168.1.10',

'db_port' => '3306',

'db_name' => 'thinkphp',

'db_charset'=> 'utf8',

),

//数据库配置2

'DB_CONFIG2' => 'mysql://root:1234@192.168.1.10:3306/thinkphp#utf8';

然后在模型里面定义:

//在模型里单独设置数据库连接信息

namespace Home\Model;

use Think\Model;

class UserModel extends Model{

//调用配置文件中的数据库配置1

protected $connection = 'DB_CONFIG1';

// 或者

protected $connection = 'DB_CONFIG2';

}

除了在模型定义的时候指定数据库连接信息外,我们还可以在实例化的时候指定数据库连接信息,如果采用的是M方法实例化模型的话,也可以支持传入不同的数据库连接信息,例如:

$User = M('User','other_','mysql://root:1234@192.168.1.10/demo#utf8');

表示实例化User模型,连接的是demo数据库的other_user表,采用的连接信息是第三个参数配置的。

如果我们在项目配置文件中已经配置了DB_CONFIG2的话,也可以采用:

$User = M('User','other_','DB_CONFIG2');

phpstorm有几种调试方法

[ThinkPHP框架开启调试模式]

ThinkPHP有专门为开发过程而设置的调试模式,开启调试模式后,会牺牲一定的执行效率,但带来的方便和除错功能非常值得。

如何开启

开启调试模式很简单,只需要在入口文件中增加一行常量定义代码。在完成开发阶段部署到生产环境后,只需要关闭调试模式或者删除调试模式定义代码即可切换到部署模式。

<?php

// 开启调试模式

define('APP_DEBUG', true);

// 定义应用目录

define('APP_PATH', './Application/');

// 加载框架入口文件

require './ThinkPHP/ThinkPHP.php';

调试模式的优点在于:

开启日志记录,任何错误信息和调试信息都会详细记录,便于调试;关闭模板缓存,模板修改可以即时生效;

记录SQL日志,方便分析SQL;

关闭字段缓存,数据表字段修改不受缓存影响;严格检查文件大小写(即使是Windows平台),帮助你提前发现Linux部署可能导致的隐患问题;通过页面Trace功能更好的调试和发现错误;

[日志]

日志的处理工作是由系统自动进行的,在开启日志记录的情况下,会记录下允许的日志级别的所有日志信息。

框架默认是在调试模式下记录日志信息,如果需要在部署模式下开启日志记录,需要在配置中开启LOG_RECORD参数,以及可以在应用配置文件中配置需要记录的日志级别。日志的记录并非实时保存的,只有当当前请求完成或者异常结束后才会实际写入日志信息,否则只是记录在内存中。

'LOG_RECORD' => true, // 开启日志记录

'LOG_LEVEL' =>'EMERG,ALERT,CRIT,ERR', // 只记录EMERG ALERT CRIT ERR 错误手动记录日志

这里,主要介绍下利用框架提供的Log日志类的三个方法来手动记录日志。

Log::record(),记录日志信息到内存。

\Think\Log::record('测试日志信息');

\Think\Log::record('测试日志信息,这是警告级别','WARN');//默认的话记录的日志级别是ERR,也可以指定日志级别Log::save(),把保存在内存中的日志信息(用指定的记录方式)写入。

由于系统在请求结束后会自动调用Log::save方法,所以通常,你只需要调用Log::record记录日志信息即可。

Log::write(),实时写入一条日志信息。

采用record方法记录的日志信息不是实时保存的,如果需要实时记录的话,可以采用write方法。write方法写入日志的时候 不受配置的允许日志级别影响,可以实时写入任意级别的日志信息。

\Think\Log::write('测试日志信息,这是警告级别,并且实时写入','WARN');[利用Xdebug工具]

参见我写的另外一篇文章,Mac下给PhpStorm安装调试工具Xdebug[变量调试]

变量调试对于简单的问题可以起到很快捷的调试作用,有时候通过对变量的观察可以迅速定位到问题位置,但是对比使用Xdebug方法,缺乏流程性和整体观。

echo方法

echo 输出一个或者多个字符串或变量值,多个值之间用逗号分隔,他是php语句,不是函数。因为他不是函数,所以没有返回值,不能作为表达式的一部分使用。

echo $str,'world','hello!';

echo $str;

print方法

print()用于输出一个或多个字符串或变量值的信息。它只能打印出简单类型变量的值(如int,string),不能打印数组和对象。稍慢于echo。

print_r方法

可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头。print_r返回值是布尔型的,参数是mix类型的,可以是字符串,整形,数组,对象类print_r() 显示关于一个变量的易于理解的信息。如果给出的是 string、integer 或 float,将打印变量值本身。如果给出的是 array,将会按照一定格式显示键和元素。print_r() 对数组作用后将把数组的指针移到最后边。使用 reset() 可让指针回到开始处。

$data = ['test1', 'test2', 'test3', 'test' => 'test'];print_r($data);//Array ( [0] => test1 [1] => test2 [2] => test3 [test] => test )var_dump方法

用于显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。信息比较详细,用的较多。

$data = ['test1', 'test2', 'test3', 'test' => 'test'];var_dump($data);

array (size=4)

//输出

0 => string 'test1' (length=5)

1 => string 'test2' (length=5)

2 => string 'test3' (length=5)

'test' => string 'test' (length=4)

dump方法

dump不是php方法,属于ThinkPHP框架自带的,工能和var_dump差不多。

[性能调试]

开发过程中,有些时候为了测试性能,经常需要调试某段代码的运行时间或者内存占用开销,系统提供了G方法可以很方便的获取某个区间的运行时间和内存占用情况。

G('begin','end') 表示统计begin位置到end位置的执行时间(单位是秒),begin必须是一个已经标记过的位置,如果这个时候end位置还没被标记过,则会自动把当前位置标记为end标签,输出的结果类似于:0.0056sG('begin');

$data = ['test1', 'test2', 'test3', 'test' => 'test'];//这里是其他代码G('end');

echo G('begin', 'end', 5) . 's';//数字代表保留几位小数如果环境支持内存占用统计的话,还可以使用G方法进行区间内存开销统计(单位为kb)G('begin','end','m').'kb';

[模型调试]

调试执行的SQL语句

用getLastsql方法来输出上次执行的sql语句,有时候数据不符合预期时,用此方法可以方便的观察查询语句,判断逻辑是否有误。

$User = M("User"); // 实例化User对象

$User->find(1);

echo $User->getLastSql();

// 3.2版本中可以使用简化的方法

echo $User->_sql();

调试数据库错误信息

CURD操作如果返回值为false,表示数据库操作发生错误,这个时候就需要使用模型的getDbError方法来查看数据库返回的具体错误信息。

$User = M("User"); // 实例化User对象

$result = $User->find(1);

if(false === $result){

echo $User->getDbError();

}

文/竹影林风(简书作者)

原文链接:著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”。

thinkphp 图书管理系统怎么做 curd

查询数据库

M('数据库名(不需要写前缀)')->where('查询条件')->order('排序方法')->page('分页参数')->select();

->order() 可不写,->page(),可不写

也可以直接写sql 用 M()->query(sql);

建议你还是多看看 TP的手册

写的挺详细的!

关于curd日志记录php的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。

查看更多关于curd日志记录php php 日志的详细内容...

声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did197887
更新时间:2023-04-26   阅读:18次

上一篇: php做的简易系统 php开发大型系统

下一篇:Php原生就是没用框架吗 原生php入口文件

最新资料更新

  • 1.php下面有哪些技术 php运用的技术php开发有哪些实用的技术
  • 2.php薪资1680 php一个月能挣多少钱
  • 3.PHP中嵌入script php嵌入html有哪几种方法
  • 4.erpphp源码下载 thinkphp erp源码
  • 5.php大牛交流教程 php大神
  • 6.phpjavacms的简单介绍
  • 7.php会员登录与注册 php 用户登录
  • 8.php比较运算符价格 php中用于比较字符串的函数
  • 9.php订单管理功能 php订单提醒功能
  • 10.phpsql添加记录 php数据表里怎么添加数据
  • 11.php代码调用js php调用java代码
  • 12.phpword导出 phpspreadsheet导出
  • 13.php显示json php显示客户端ip和服务器ip
  • 14.原生php提交form php原生开发的好处
  • 15.包含phpgabage的词条
  • 16.phpfpm出错 php报错信息
  • 17.php合并特殊字符 php合并单元格的代码
  • 18.包含phpautoconf的词条
  • 19.php方法前加 php变量前后加点
  • 20.php大马离线版 php大马shell提权

CopyRight:2016-2025好得很程序员自学网 备案ICP:湘ICP备09009000号-16 http://www.haodehen.cn
本站资讯不构成任何建议,仅限于个人分享,参考须谨慎!
本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。

网站内容来源于网络分享,如有侵权发邮箱到:kenbest@126.com,收到邮件我们会即时下线处理。
网站框架支持:HDHCMS   51LA统计 百度统计
Copyright © 2018-2025 「好得很程序员自学网」
[ SiteMap ]