摘要: 最近在使用pdo时,bindValue的第一个参数中有一个“-”,就触发了这个bug, 运行上面的代码,会出现 PHP Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: parameter was 阅读全文
posted @ 2017-07-27 10:33 狄磊 阅读(2156) 评论(0) 推荐(0) 编辑
摘要: 和触发器不同的是,需要制定时间点触发,不能认为调用 注意点:两种场景 before和after before: 可以对当前行(new)进行修改,修改使用 set 语法(见代码),而不是update sql(会造成循环) after: 不可以对当前行(new)进行修改(修改会造成死循环) 阅读全文
posted @ 2017-06-08 15:37 狄磊 阅读(166) 评论(0) 推荐(0) 编辑
摘要: 注意点: @val 会话变量 不需要声明 直接使用 set @val = "abc"; 局部变量 需要声明 declare val char(10) default ""; set val = "abd" 另 在prepare语句中 要使用会话变量,见下面代码 阅读全文
posted @ 2017-06-08 15:29 狄磊 阅读(133) 评论(0) 推荐(0) 编辑
摘要: 当我们分组查询时,使用group by关键字,但是当我们有需求要显示每组的数据时,可以使用GROUP_CONCAT()函数,来显示你想要的列 例如表t: select id, GROUP_CONCAT(name) from t group by class; 阅读全文
posted @ 2017-02-23 18:54 狄磊 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 现在有16枚外形相同的硬币,其中有一枚假币,且已知假币比真币轻,现有一个没有砝码的天平,问至少要多少次才能找到这枚假币? 思考下 阅读全文
posted @ 2017-02-22 21:17 狄磊 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 1、如何防止sql注入 检查变量类型,如果是整形就使用intval方法转为int string类型使用addslashes函数过滤特殊字符(它会在指定的预定义字符前添加反斜杠转义,这些预定义的字符是:单引号 (') 双引号 (") 反斜杠 (\) NULL) 如果是使用的mysql,使用 mysql 阅读全文
posted @ 2017-02-16 19:52 狄磊 阅读(139) 评论(0) 推荐(0) 编辑
摘要: 1、redis是单线程还是多线程? redis是单线程的,memcached使用的是多线程 http://blog.jobbole.com/100079/ 2 、redis数据类型?set集合的大小?list中BLPOP和LPOP的区别? string list hash set 有序set sca 阅读全文
posted @ 2017-02-15 20:10 狄磊 阅读(197) 评论(0) 推荐(0) 编辑
摘要: 注:本文是对众多博客的学习和总结,可能存在理解错误。请带着怀疑的眼光,同时如果有错误希望能指出。 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案是不同的。所以先限定一下本文的上下文。 本文讨论的背景是Linux环境下的network IO。 一 阅读全文
posted @ 2016-09-08 14:06 狄磊 阅读(558) 评论(0) 推荐(0) 编辑
摘要: 首先讨论下使用事件驱动,异步编程的优点: 充分利用了系统资源,执行代码无须阻塞等待某种操作完成,有限的资源可以用于其他的任务。其非常适合于后端的网络服务编程。 在服务器开发中,并发的请求处理是个大问题,阻塞式的函数会导致资源浪费和时间延迟。通过事件注册、异步函数,开发人员可以提高资源的利用率,性能也 阅读全文
posted @ 2016-09-07 09:37 狄磊 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 什么是线程 什么是线程?线程与进程与有什么关系?这是一个非常抽象的问题,也是一个特别广的话题,涉及到非常多的知识。我不能确保能把它讲的话,也不能确保讲的内容全部都正确。即使这样,我也希望尽可能地把他讲通俗一点,讲的明白一点,因为这是个一直困扰我很久的,扑朔迷离的知识领域,希望通过我的理解揭开它一层一 阅读全文
posted @ 2016-09-06 17:24 狄磊 阅读(184) 评论(0) 推荐(0) 编辑