- java 同步redis到mysql_Yii2 redis同步数据到mysql
兰艳知己
java同步redis到mysql
将redis数据写入mysql中:本次案例讲解将如何将商城中商品浏览次数通过缓存记录并写入mysql中具体的redis安装过程暂且就省略了.....一、安装redis插件|配置rediscomposerrequireyiisoft/yii2-redis找到common的config文件,在components下加入redis配置参数'redis'=>['class'=>'yii\redis\Con
- 关于YII2使用mssql/SqlServer的问题
aisicongg
yiiSqlServer
场景:配置了多个db连接,包含mysql和mssql等多个。本人在配置使用mssql的的过程中发现表名和字段名自动转义成`分隔符。例如SELECT`id`,`username`FROM`user`该语句在mssql是无法执行的,因为mssql不支持`分隔符,这个时候你需要在yii2调用的时候指定对应的配置db,比如我的申请了SqlServer是db2,那么我的写法如下:$query->create
- 用于 Yii 2 的 AuthClient 扩展--安装
topofgods
Yii
https://github.com/yiisoft/yii2-authclient/blob/master/docs/guide-zh-CN/installation.md安装安装扩展要安装该扩展,请使用Composer。运行composerrequire--prefer-distyiisoft/yii2-authclient"~2.1.0"或在你的composer.json文件的“requir
- YII2配置SQLSERVER
大智001
php5.3以后,没有对sqlserver的支持的动态链接文件了,要php支持sqlserver。记住下面两个链接:https://github.com/Microsoft/msphpsql1.根据要求下载SRV32.EXE文件。(Php5.5以上的可以安装SQL)https://www.microsoft.com/en-us/download/details.aspx?id=20098将其安装到
- Yii2 连接SqlServer(windows)
aaa阿阿qiu~~
php环境windowssqlserverphp
最开始的问题:连接mysql没问题,连接sqlserver一直不行,但是在客户端可以连接,说明肯定程序或者是扩展哪里没弄对,就一直报couldnotfinddriver这个错误1、php扩展,可以使用phpinfo()来查看是否成功加载了pdo_sqlsrv模块,没问题扩展下载链接地址:https://docs.microsoft.com/zh-cn/sql/connect/php/release
- Yii 2 JQuery UI 扩展使用教程
解雁淞
Yii2JQueryUI扩展使用教程yii2-juiYii2JQueryUIextension.项目地址:https://gitcode.com/gh_mirrors/yi/yii2-jui项目介绍Yii2JQueryUI扩展是一个为Yii框架2.0提供的扩展,它封装了JQueryUI小部件作为Yii小部件,使得在Yii应用程序中使用JQueryUI小部件变得更加方便。这个扩展由yiisoft开发
- 深入探讨PHP框架:架构、优势及应用案例
电竞小潘安
本文还有配套的精品资源,点击获取简介:PHP框架为开发PHP应用提供了一套预定义的结构和组件,旨在简化开发流程、提高效率并促进代码复用。介绍了流行的PHP框架如Laravel、Symfony、CodeIgniter、Yii、CakePHP和Phalcon,它们各自的特色和优势。同时,阐述了选择合适框架的考量因素,以及框架对代码标准化、安全性及社区支持的影响。文章总结强调,学习和掌握不同PHP框架对
- Yii Db Model相关方法
PHP(Mr. Hamster)
Yii2ecshop
Model方法where字符串格式数组格式:['in','user_id',$ids]['name'=>value]andWhereorWhereone返回一条数据all返回多条二维数组columndelete删除数据跟在one后面可用deleteAll删除全部delete([name=>value,...])delete("stringsql")update更新数据->createCommand
- YiI2+ecshop phpexcel生成下载excel订单
PHP(Mr. Hamster)
#Yii2phpexcel
前端代码注:需引入jquery下载订单document.getElementById('downloadBtn').addEventListener('click',function(event){event.preventDefault();//自定义逻辑例如:发送AJAX请求或显示下载提示constkey_words=$('input[name="key_words"]').val();con
- Springboot接收 Form 表单数据的示例详解
weixin_44917365
springbootjavaspring
一、接收Form表单数据文章地址https://www.yii666.com/blog/298384.html1,基本的接收方法(1)下面样例Controller接收form-data格式的POST数据:importorg.springframework.web.bind.annotation.PostMapping;importorg.springframework.web.bind.annot
- Yii2项目自动向GitLab上报Bug
少湖说
Gitlab-CI实战gitlabbug前端yii
Yii2项目自动上报Bug原理yii2在程序报错时,会执行指定action,通过重写ErrorAction,实现Bug自动提交至GitLab的issue步骤配置SiteController中的actions方法publicfunctionactions(){return['error'=>['class'=>'app\helpers\web\ErrorAction',],];}重写ErrorAct
- spring ServerWeb 相关说明
征客
springjava
springServerWeb相关说明参考:https://www.yii666.com/blog/334416.html一、ServerWebExchange与过滤器的关系SpringCloudGateway同zuul类似,有“pre”和“post”两种方式的filter。客户端的请求先经过“pre”类型的filter,然后将请求转发到具体的业务服务,收到业务服务的响应之后,再经过“post”类
- Yii2使用PHPExcel读取excel
pxy_lele
进击的礼包yiiphpexcel
个人使用过程中保存一些使用PHPExcel的经验,以便后来翻阅:与PHP的Yii框架结合,可以轻松使用。而且根本不用网上所说的修改Yii的自动加载文件等方法。具体使用方法:下载phpofficehttp://phpexcel.codeplex.com/releases/view/119187(如果用composer的话,不需要手动下载)下载后首级目录结构是Classes,Documentation
- Yii2.0手册地址
攻城狮joe
LA(N)MPYII2.0
官网打不开,可以看这里http://yii2.techbrood.com/;跟官网里面文档一样。ps:今天真郁闷,官网都打不开
- Yii2.0 用户登录详解(上)
lhorse003
yii2登陆
一、准备在开始编写代码之前,我们需要思考一下:用户登陆模块,实现的是什么功能?很明显,是登陆功能,那么,登陆需要用户名和密码,我们在数据库的一张表中就应该准备好用户名和密码的字段,再思考一下,如果要实现自动登陆的功能,那么还需要什么?Cookie,是专门用于自动登陆的,所以,我们的数据表可能需要准备一个字段,专门用于储存客户端登陆所生成的cookie,这样,就能通过验证客户端和服务端的cookie
- Foxdisk00-源代码编译
luobing4365
汇编语言探索bootloader底层编程多系统引导自己写操作系统汇编语言
(请保留->作者:罗冰)为了便于之后博文的行文方便,我把代码放在了下载区。(这篇博文最早发布在http://yiiyee.cn/blog/author/luobing/下,我把代码放在github上了https://github.com/luobing/Foxdisk3)编译器使用的是BorlandC++3.1,C编译器和汇编编译器都在其中。代码中包含三个汇编文件:Loaser.asm、iMath
- AtCoder Beginner Contest 183 —— C - Travel
yamaes
c语言开发语言
ProblemStatementThereareNNcities.ThetimeittakestotravelfromCityiitoCityjjisTi,jTi,j.AmongthosepathsthatstartatCity11,visitallothercitiesexactlyonce,andthengobacktoCity11,howmanypathstakethetotaltimeof
- PHP框架为基础的购物平台设计思路分步骤说明
星糖曙光
后端语言(nodejavascriptvue等等)学习课程设计vue.jspythonphp
以下是以PHP框架为基础的购物平台设计思路分步骤说明:一、技术选型阶段技术栈={后端框架:Laravel/Yii2(提供ORM、路由、中间件支持)前端框架:Vue.js/React(可选SPA方案)数据库:MySQL8.0+(事务型数据存储)缓存:Redis(会话/商品缓存)队列:RabbitMQ(异步处理订单)\text{技术栈}=\begin{cases}后端框架:Laravel/Yii2(提
- \yii\queue\LogBehavior::class到底是什么?一共包含哪些部分?
快点好好学习吧
Yii2.0android
1.\yii\queue\LogBehavior::class到底是什么?想象一下,你在一家咖啡店:你需要记录每一笔订单的状态(如“已下单”、“正在制作”、“已完成”),以便后续追踪和排查问题。在Yii2的队列系统中,\yii\queue\LogBehavior就像是一个“日志记录员”,用于在队列任务执行的不同阶段记录日志信息。(1)核心概念定义:\yii\queue\LogBehavior是Yi
- Yii::$app->queue->push到底如何使用?
快点好好学习吧
Yii2.0android
1.Yii::$app->queue->push是什么?想象一下,你在一家咖啡店:你需要将每一笔订单(任务)放入“待处理队列”中,由后厨按照顺序处理。在Yii2中,Yii::$app->queue->push就像是这个“放入队列”的操作,用于将任务推送到队列系统中,等待异步处理。(1)核心概念定义:Yii::$app->queue->push是Yii2队列扩展中的一个方法,用于将任务推送到队列中。
- 吴大仙带你三分钟学会swoole框架
大仙带你飞
phpswoole
前言最近在学习swoole这个东西,就写点心得吧。基于swoole的开源框架很多,优缺点自己百度,凡是有用到websocket和消费队列选择基于swoole的框架是不错的选择。好吧话不多说,吴大仙就介绍一下swoole的一个简单入门吧正文swoole有两个部分。一个是PHP扩展,用C开发的,这是核心。另一个是框架,像yii、TP、Laravel一样,是PHP代码写的。swoole扩展本身提供了we
- DeepSeek 模型:究竟该如何抉择?
云计算课代表
日常运维问题合集腾讯云ai服务器云计算
一、DeepSeek安装部署之前已经写过教程介绍如何部署DeepSeek,具体可参考以下内容:喂饭式教程-腾讯云轻量服务器部署DeepSeek:https://www.yiisu.vip/deepseek_lighthouse.html喂饭式教程-腾讯云HAI服务部署DeepSeek:https://www.yiisu.vip/deepseek_hai.html喂饭式教程-腾讯云HAI服务原生安装
- PHP反序列化漏洞POP链详解 - Yii框架案例分析 (②)
恩师小迪
android前端javascript
POP链的第二条路:从Faker\Generator开始现在,让我们一步步解析这条攻击链。我们将从Faker\Generator类的__call魔术方法开始,追踪到最终执行危险函数的地方。第一步:触发__call魔术方法在PHP中,当你尝试调用一个对象中不存在的方法时,如果该对象定义了__call魔术方法,PHP会自动调用它。假设我们有一个Faker\Generator对象:$generator=
- 使用yii自带发邮件功能发送邮件
原克技术
yiiphp
邮件组件的配置取决于您选择的扩展名。通常,您的应用程序配置应如下所示:在配置文件中配置dirname(dirname(__DIR__)).'/vendor','timeZone'=>'Asia/Chongqing','components'=>['db'=>['class'=>'yii\db\Connection','dsn'=>'mysql:host=localhost;dbname=root'
- 【原创】Android Studio 中好用的翻译插件
赵庆明老师
Androidandroidstudioandroidide
在使用AndroidStudio的时候,且不说英文界面,在编写代码的时候遇到的文档也是英文的,如果英语基础不过关,这个软件就太好了。名称很简单:Translation,由Yii.Guxing开发,目前800多次安装。https://plugins.jetbrains.com/plugin/8579-translation在AndroidStudio中打开设置\插件,搜索Translation即可,
- php yii 微信支付宝,Yii使用easywechat实现微信支付
爱吃生菜的鱼
phpyii微信支付宝
您现在的位置是:网站首页>>微信>>微信公众号Yii使用easywechat实现微信支付发布时间:2019-04-3011:43:07作者:wangjian浏览量:1142点赞量:0一:微信公众号申请微信支付申请微信公众号的微信支付申请这里就不进行叙述了二:yii配置支付配置这里我使用的是max-wen/yii2-easy-wechat,所以这里我参考的是3.X版本的文档2:微信支付配置'WECH
- phpyii框架倒叙_PHP的Yii框架入门使用教程
weixin_39851974
phpyii框架倒叙
安装Yii的安装由如下两步组成:从yiiframework.com下载Yii框架。将Yii压缩包解压至一个Web可访问的目录。Tip|提示:安装在Web目录不是必须的,每个Yii应用都有一个入口脚本,只有它才必须暴露给Web用户。其它PHP脚本(包括Yii)应该保护起来不被Web访问,因为它们可能会被黑客利用。需求安装完Yii以后你也许想验证一下你的服务器是否满足使用Yii的要求,只需浏览器中输入
- Yii框架中的ActiveDataProvide如何便捷地获取数据
ac-er8888
前端php开发语言
Yii框架中的ActiveDataProvider是一个强大的工具,用于便捷地获取数据。它主要用于从数据库中查询数据模型,将结果按特定格式组织,并支持分页、排序和过滤等功能。以下是ActiveDataProvider如何便捷地获取数据的详细说明:一、基本使用创建ActiveDataProvider实例:需要提供模型类和查询条件作为参数。例如,若要获取所有已发布的文章,可以这样创建ActiveDat
- Yii框架中的控制器如何处理请求
ac-er8888
前端服务器php开发语言
在Yii框架中,控制器处理请求的过程是一个核心环节,它遵循MVC(Model-View-Controller)设计模式,负责将用户发送的请求转发到对应的处理方法(Action)中,并通过这些方法来生成相应的响应信息。以下是Yii框架中控制器处理请求的详细步骤:请求解析:Yii框架首先会解析HTTP请求,提取请求的URL、请求方法(GET、POST等)以及请求参数等信息。这些信息将被用于确定应该调用
- Yii框架中的表单构建器:构建复杂表单
ac-er8888
服务器运维php开发语言
Yii框架中的表单构建器(FormBuilder)是一个强大的工具,它允许开发人员以简单、面向对象的方式构建复杂的表单,从而提升Web应用的用户体验。以下是对Yii框架中表单构建器的详细简述,特别是在构建复杂表单方面的应用:一、表单构建器的基础组件介绍:Yii表单构建器是Yii框架中的一个组件,专门用于创建Web表单。它提供了一个简单的、面向对象的编程接口,使得开发人员能够轻松地创建各种常见的表单
- java观察者模式
3213213333332132
java设计模式游戏观察者模式
观察者模式——顾名思义,就是一个对象观察另一个对象,当被观察的对象发生变化时,观察者也会跟着变化。
在日常中,我们配java环境变量时,设置一个JAVAHOME变量,这就是被观察者,使用了JAVAHOME变量的对象都是观察者,一旦JAVAHOME的路径改动,其他的也会跟着改动。
这样的例子很多,我想用小时候玩的老鹰捉小鸡游戏来简单的描绘观察者模式。
老鹰会变成观察者,母鸡和小鸡是
- TFS RESTful API 模拟上传测试
ronin47
TFS RESTful API 模拟上传测试。
细节参看这里:https://github.com/alibaba/nginx-tfs/blob/master/TFS_RESTful_API.markdown
模拟POST上传一个图片:
curl --data-binary @/opt/tfs.png http
- PHP常用设计模式单例, 工厂, 观察者, 责任链, 装饰, 策略,适配,桥接模式
dcj3sjt126com
设计模式PHP
// 多态, 在JAVA中是这样用的, 其实在PHP当中可以自然消除, 因为参数是动态的, 你传什么过来都可以, 不限制类型, 直接调用类的方法
abstract class Tiger {
public abstract function climb();
}
class XTiger extends Tiger {
public function climb()
- hibernate
171815164
Hibernate
main,save
Configuration conf =new Configuration().configure();
SessionFactory sf=conf.buildSessionFactory();
Session sess=sf.openSession();
Transaction tx=sess.beginTransaction();
News a=new
- Ant实例分析
g21121
ant
下面是一个Ant构建文件的实例,通过这个实例我们可以很清楚的理顺构建一个项目的顺序及依赖关系,从而编写出更加合理的构建文件。
下面是build.xml的代码:
<?xml version="1
- [简单]工作记录_接口返回405原因
53873039oycg
工作
最近调接口时候一直报错,错误信息是:
responseCode:405
responseMsg:Method Not Allowed
接口请求方式Post.
- 关于java.lang.ClassNotFoundException 和 java.lang.NoClassDefFoundError 的区别
程序员是怎么炼成的
真正完成类的加载工作是通过调用 defineClass来实现的;
而启动类的加载过程是通过调用 loadClass来实现的;
就是类加载器分为加载和定义
protected Class<?> findClass(String name) throws ClassNotFoundExcept
- JDBC学习笔记-JDBC详细的操作流程
aijuans
jdbc
所有的JDBC应用程序都具有下面的基本流程: 1、加载数据库驱动并建立到数据库的连接。 2、执行SQL语句。 3、处理结果。 4、从数据库断开连接释放资源。
下面我们就来仔细看一看每一个步骤:
其实按照上面所说每个阶段都可得单独拿出来写成一个独立的类方法文件。共别的应用来调用。
1、加载数据库驱动并建立到数据库的连接:
Html代码
St
- rome创建rss
antonyup_2006
tomcatcmsxmlstrutsOpera
引用
1.RSS标准
RSS标准比较混乱,主要有以下3个系列
RSS 0.9x / 2.0 : RSS技术诞生于1999年的网景公司(Netscape),其发布了一个0.9版本的规范。2001年,RSS技术标准的发展工作被Userland Software公司的戴夫 温那(Dave Winer)所接手。陆续发布了0.9x的系列版本。当W3C小组发布RSS 1.0后,Dave W
- html表格和表单基础
百合不是茶
html表格表单meta锚点
第一次用html来写东西,感觉压力山大,每次看见别人发的都是比较牛逼的 再看看自己什么都还不会,
html是一种标记语言,其实很简单都是固定的格式
_----------------------------------------表格和表单
表格是html的重要组成部分,表格用在body里面的
主要用法如下;
<table>
&
- ibatis如何传入完整的sql语句
bijian1013
javasqlibatis
ibatis如何传入完整的sql语句?进一步说,String str ="select * from test_table",我想把str传入ibatis中执行,是传递整条sql语句。
解决办法:
<
- 精通Oracle10编程SQL(14)开发动态SQL
bijian1013
oracle数据库plsql
/*
*开发动态SQL
*/
--使用EXECUTE IMMEDIATE处理DDL操作
CREATE OR REPLACE PROCEDURE drop_table(table_name varchar2)
is
sql_statement varchar2(100);
begin
sql_statement:='DROP TABLE '||table_name;
- 【Linux命令】Linux工作中常用命令
bit1129
linux命令
不断的总结工作中常用的Linux命令
1.查看端口被哪个进程占用
通过这个命令可以得到占用8085端口的进程号,然后通过ps -ef|grep 进程号得到进程的详细信息
netstat -anp | grep 8085
察看进程ID对应的进程占用的端口号
netstat -anp | grep 进程ID
&
- 优秀网站和文档收集
白糖_
网站
集成 Flex, Spring, Hibernate 构建应用程序
性能测试工具-JMeter
Hmtl5-IOCN网站
Oracle精简版教程网站
鸟哥的linux私房菜
Jetty中文文档
50个jquery必备代码片段
swfobject.js检测flash版本号工具
- angular.extend
boyitech
AngularJSangular.extendAngularJS API
angular.extend 复制src对象中的属性去dst对象中. 支持多个src对象. 如果你不想改变一个对象,你可以把dst设为空对象{}: var object = angular.extend({}, object1, object2). 注意: angular.extend不支持递归复制. 使用方法: angular.extend(dst, src); 参数:
- java-谷歌面试题-设计方便提取中数的数据结构
bylijinnan
java
网上找了一下这道题的解答,但都是提供思路,没有提供具体实现。其中使用大小堆这个思路看似简单,但实现起来要考虑很多。
以下分别用排序数组和大小堆来实现。
使用大小堆:
import java.util.Arrays;
public class MedianInHeap {
/**
* 题目:设计方便提取中数的数据结构
* 设计一个数据结构,其中包含两个函数,1.插
- ajaxFileUpload 针对 ie jquery 1.7+不能使用问题修复版本
Chen.H
ajaxFileUploadie6ie7ie8ie9
jQuery.extend({
handleError: function( s, xhr, status, e ) {
// If a local callback was specified, fire it
if ( s.error ) {
s.error.call( s.context || s, xhr, status, e );
}
- [机器人制造原则]机器人的电池和存储器必须可以替换
comsci
制造
机器人的身体随时随地可能被外来力量所破坏,但是如果机器人的存储器和电池可以更换,那么这个机器人的思维和记忆力就可以保存下来,即使身体受到伤害,在把存储器取下来安装到一个新的身体上之后,原有的性格和能力都可以继续维持.....
另外,如果一
- Oracle Multitable INSERT 的用法
daizj
oracle
转载Oracle笔记-Multitable INSERT 的用法
http://blog.chinaunix.net/uid-8504518-id-3310531.html
一、Insert基础用法
语法:
Insert Into 表名 (字段1,字段2,字段3...)
Values (值1,
- 专访黑客历史学家George Dyson
datamachine
on
20世纪最具威力的两项发明——核弹和计算机出自同一时代、同一群年青人。可是,与大名鼎鼎的曼哈顿计划(第二次世界大战中美国原子弹研究计划)相 比,计算机的起源显得默默无闻。出身计算机世家的历史学家George Dyson在其新书《图灵大教堂》(Turing’s Cathedral)中讲述了阿兰·图灵、约翰·冯·诺依曼等一帮子天才小子创造计算机及预见计算机未来
- 小学6年级英语单词背诵第一课
dcj3sjt126com
englishword
always 总是
rice 水稻,米饭
before 在...之前
live 生活,居住
usual 通常的
early 早的
begin 开始
month 月份
year 年
last 最后的
east 东方的
high 高的
far 远的
window 窗户
world 世界
than 比...更
- 在线IT教育和在线IT高端教育
dcj3sjt126com
教育
codecademy
http://www.codecademy.com codeschool
https://www.codeschool.com teamtreehouse
http://teamtreehouse.com lynda
http://www.lynda.com/ Coursera
https://www.coursera.
- Struts2 xml校验框架所定义的校验文件
蕃薯耀
Struts2 xml校验Struts2 xml校验框架Struts2校验
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 15:54:59 星期六
http://fa
- mac下安装rar和unrar命令
hanqunfeng
mac
1.下载:http://www.rarlab.com/download.htm 选择
RAR 5.21 for Mac OS X 2.解压下载后的文件 tar -zxvf rarosx-5.2.1.tar 3.cd rar sudo install -c -o $USER unrar /bin #输入当前用户登录密码 sudo install -c -o $USER rar
- 三种将list转换为map的方法
jackyrong
list
在本文中,介绍三种将list转换为map的方法:
1) 传统方法
假设有某个类如下
class Movie {
private Integer rank;
private String description;
public Movie(Integer rank, String des
- 年轻程序员需要学习的5大经验
lampcy
工作PHP程序员
在过去的7年半时间里,我带过的软件实习生超过一打,也看到过数以百计的学生和毕业生的档案。我发现很多事情他们都需要学习。或许你会说,我说的不就是某种特定的技术、算法、数学,或者其他特定形式的知识吗?没错,这的确是需要学习的,但却并不是最重要的事情。他们需要学习的最重要的东西是“自我规范”。这些规范就是:尽可能地写出最简洁的代码;如果代码后期会因为改动而变得凌乱不堪就得重构;尽量删除没用的代码,并添加
- 评“女孩遭野蛮引产致终身不育 60万赔偿款1分未得”医腐深入骨髓
nannan408
先来看南方网的一则报道:
再正常不过的结婚、生子,对于29岁的郑畅来说,却是一个永远也无法实现的梦想。从2010年到2015年,从24岁到29岁,一张张新旧不一的诊断书记录了她病情的同时,也清晰地记下了她人生的悲哀。
粗暴手术让人发寒
2010年7月,在酒店做服务员的郑畅发现自己怀孕了,可男朋友却联系不上。在没有和家人商量的情况下,她决定堕胎。
12月5日,
- 使用jQuery为input输入框绑定回车键事件 VS 为a标签绑定click事件
Everyday都不同
jspinput回车键绑定clickenter
假设如题所示的事件为同一个,必须先把该js函数抽离出来,该函数定义了监听的处理:
function search() {
//监听函数略......
}
为input框绑定回车事件,当用户在文本框中输入搜索关键字时,按回车键,即可触发search():
//回车绑定
$(".search").keydown(fun
- EXT学习记录
tntxia
ext
1. 准备
(1) 官网:http://www.sencha.com/
里面有源代码和API文档下载。
EXT的域名已经从www.extjs.com改成了www.sencha.com ,但extjs这个域名会自动转到sencha上。
(2)帮助文档:
想要查看EXT的官方文档的话,可以去这里h
- mybatis3的mapper文件报Referenced file contains errors
xingguangsixian
mybatis
最近使用mybatis.3.1.0时无意中碰到一个问题:
The errors below were detected when validating the file "mybatis-3-mapper.dtd" via the file "account-mapper.xml". In most cases these errors can be d