摘要:
对于初学编程的人员来说,变量在内存中是分配在堆中还是在栈中,往往不甚明白,今天我来清晰简单的讲解下。 当我们看到一个变量类型是已知的,就分配在栈里面,比如INT,Double等。其他未知的类型,比如自定义的类型,因为系统不知道需要多大,所以程序自己申请,这样就分配在堆里面。 值类型与引用类型的分配,如图: 简单来说,值类型是分配在栈里面,引用类型分配在堆里面。 那从内存的分配角度来看,是因为值类型,已经知道了类型的范围大小,可以进行有效分配,比如int,计算机是知道其范围的,所以直接由系统分配在栈中,无需自己申请! 而新的类型,比如自己定义一个类,很明显这个类是不知道大小的,应... 阅读全文
摘要:
数据库是WEB大多数应用开发的基础。如果你是用PHP,那么大多数据库用的是MYSQL也是LAMP架构的重要部分。 PHP看起来很简单,一个初学者也可以几个小时内就能开始写函数了。但是建立一个稳定、可靠的数据库确需要时间和经验。下面就是一些这样的经验,不仅仅是MYSQL,其他数据库也一样可以参考。1、使用MyISAM而不是InnoDBMySQL有很多的数据库引擎,但一般也就用MyISAM和InnoDB。 MyISAM是默认使用的。但是除非你是建立一个非常简单的数据库或者只是实验性的,那么到大多数时候这个选择是错误的。MyISAM不支持外键的约束,这是保证数据完整性的精华所在啊。另外,My... 阅读全文
摘要:
概念: 防止:验证。 举例说明: 应该是:永远别相信用户的输入。用后端的PHP来校验过滤每一条输入的信息,不要相信Javascript。像下面这样的SQL语句很容易就会被攻击:$username = $_POST["name"]; $password = $_POST["password"]; $sql = "SELECT userid FROM usertable WHERE username='$username'AND password='$password';"; // run query... 阅读全文
摘要:
首先两个函数都是用来处理DB 的。首先, mysqli 连接是永久连接,而mysql是非永久连接(错!错!错!)。什么意思呢? mysql连接每当第二次使用的时候,都会重新打开一个新的进程,而mysqli则只使用同一个进程,这样可以很大程度的减轻服务器端压力。其次,mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。具体查看 http://cn.php.net/mysqli应用比较多的地方是 mysqli的事务。比如下面的示例:$mysqli = new mysqli('localhost','root','',& 阅读全文
摘要:
建立外键的前提: 本表的列必须与外键类型相同(外键必须是外表主键)。外键作用: 使两张表形成关联,外键只能引用外表中的列的值!指定主键关键字: foreign key(列名)引用外键关键字: references <外键表名>(外键列名)事件触发限制: on delete和on update , 可设参数cascade(跟随外键改动), restrict(限制外表中的外键改动),set Null(设空值),set Default(设默认值),[默认]no action例如:outTable表 主键 id 类型 int创建含有外键的表: create table temp( id i 阅读全文
摘要:
1.group by用法 只有在分组统计中才会使用group by ,这个分组统计有两个涵义:第一必须是分组,不以组归类就无所谓group by,group by的意思就是以组为单位。第二,必须是计算,而且必须是按组计算。如计算每个班级多少人:select class,count(*) from... 阅读全文