下面是例子分析 表A记录如下: aID aNum 1 a20050111 2 a20050112 3 a20050113 4 a20050114 5 a20050115 表B记录如下: bID bName 1 2006032401 2 2006032402 3 2006032403 4 2006032404 8 2006032408 创建这两个表SQL语句如下: CREATE TABLE a aID int( 1 ) AUTO_INCREMENT PRIMARY KEY , aNum char( 20 ) ) CREATE TABLE b( bID int( 1 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , bName char( 20 ) ) INSERT INTO a VALUES ( 1, 'a20050111' ) , ( 2, 'a20050112' ) , ( 3, 'a20050113' ) , ( 4, 'a20050114' ) , ( 5, 'a20050115' ) ; INSERT INTO b VALUES ( 1, ' 2006032401' ) , ( 2, '2006032402' ) , ( 3, '2006032403' ) , ( 4, '2006032404' ) , ( 8, '2006032408' ) ; 实验如下: 1.left join(左联接) sql语句如下: SELECT * FROM a LEFT JOIN b ON a.aID =b.bID 结果如下: aID aNum bID bName 1 a20050111 1 2006032401 2 a20050112 2 2006032402 3 a20050113 3 2006032403 4 a20050114 4 2006032404 5 a20050115 NULL NULL (所影响的行数为 5 行) 结果说明: left join是以A表的记录为基础的,A可以看成左表,B可以看成右表,left join是以左表为准的. 换句话说,左表(A)的记录将会全部表示出来,而右表(B)只会显示符合搜索条件的记录(例子中为: A.aID = B.bID). B表记录不足的地方均为NULL. 2.right join(右联接) sql语句如下: SELECT * FROM a RIGHT JOING b ON a.aID = b.bID 结果如下: aID aNum bID bName 1 a20050111 1 2006032401 2 a20050112 2 2006032402 3 a20050113 3 2006032403 4 a20050114 4 2006032404 NULL NULL 8 2006032408 (所影响的行数为 5 行) 结果说明: 仔细观察一下,就会发现,和left join的结果刚好相反,这次是以右表(B)为基础的,A表不足的地方用NULL填充. 3.inner join(相等联接或内联接) sql语句如下: SELECT * FROM a INNER JOIN b ON a.aID =b.bID 等同于以下SQL句: SELECT * FROM a,b WHERE a.aID = b.bID 结果如下: aID aNum bID bName 1 a20050111 1 2006032401 2 a20050112 2 2006032402 3 a20050113 3 2006032403 4 a20050114 4 2006032404 结果说明: 很明显,这里只显示出了 A.aID = B.bID的记录.这说明inner join并不以谁为基础,它只显示符合条件的记录. LEFT JOIN操作用于在任何的 FROM 子句中, 组合来源表的记录。使用 LEFT JOIN 运算来创建一个左边外部联接。左边外部联接将包含了从第一个(左边)开始的两个表中的全部记录,即 使在第二个(右边)表中并没有相符值的记录。 语法:FROM table1 LEFT JOIN table2 ON table1.field1 compopr table2.field2 说明:table1, table2参数用于指定要将记录组合的表的名称。 field1, field2参数指定被联接的字段的名称。且这些字段必须有相同的数据类型及包含相同类型的数据,但它们不需要有相同的 名称。 compopr参数指定关系比较运算符:"=", "<", ">", "<=", ">=" 或 "<>"。 如果在INNER JOIN操作中要联接包含Memo 数据类型或 OLE Object 数据类型数据的字段,将会发生错误。 […]
View Details一、 检查网站目录的权限。 上传目录是否有写入权限。 二、 php.ini配置文件 php.ini中影响上传的有以下几处: file_uploads 是否开启 on 必须开启 是否允许HTTP文件上传 post_max_size = 8M PHP接受的POST数据最大长度。此设定也影响到文件上传。 要上传大文件,该值必须大于"upload_max_filesize" 如果配置脚本中激活了内存限制,"memory_limit"也会影响文件上传。 一般说来,"memory_limit"应该比"post_max_size"要大。 upload_max_filesize = 2M 允许上传的文件的最大尺寸 upload_tmp_dir = C:\windows\temp 文件上传时存放文件的临时目录。必须是PHP进程用户可写的目录。如果未指定则PHP使用系统默认值 default_socket_timeout = 60 socket超时,单位是秒 max_execution_time = 30 每个脚本最大允许执行时间, 按秒计。默认为30秒。 这个参数有助于阻止劣质脚本无休止的占用服务器资源。 注: "max_execution_time"仅影响脚本本身的运行时间。 任何其它花费在脚本运行之外的时间,如用system()/sleep()函数的使用、数据库查询、文件上传等都不包括在内。 在安全模式下,你不能用ini_set()在运行时改变这个设置 max_input_time = 60 每个脚本接收输入数据的最大允许时间(POST, GET, upload), 按秒计 memory_limit = 128M 设定一个脚本所能够申请到的最大内存字节数。 这有助于防止劣质脚本消耗完服务器上的所有内存。 要使用此指令必须在编译的时候激活。 因此 configure 一行中应该包括:--enable-memory-limit 如果不需要任何内存上的限制,必须将其设为 -1 自php4.3.2 起,当设置了memory_limit后,memory_get_usage()函数将变为可用 三、upload_tmp_dir目录权限 如果php配置没问题,那问题有可能出在upload_tmp_dir设定的目录权限问题。加入IIS_WPG除完全控制外的权限,users的读写权限,NETWORK SERVER除完全控制外的权限。 四、如果起用了ZEND,看Temp文件夹中是否有ZendOptimizer.MemoryBase@SYSTEM和ZendOptimizer.MemoryBase@NETWORKSERVICE,如果没有,就建立它。 五、如果以上都不行,那问题很有可能出在这里了,检查windows目录是否禁用guests来宾组,要给windows目录users组 读取和执行权限。 from:http://www.jb51.net/article/49557.htm
View DetailsVS2012已经全面切换到使用NuGet这个第三方开源工具来管理项目包和引用模块了,使用VS2012开发,都要装NuGet插件(官网:http://nuget.org),进官网点安装就进入了微软的下载页面,选择vs2012版本的NuGet.Tools.vsix文件,双击安装就可以了。 from:http://www.cxyclub.cn/n/20504/
View Details