Thinkphp mysql 表结构操作 类

2015-3-30 奇Yu WEB开发

<?php
/*
 *    mysql表结构处理类
 *    创建数据表,增加,编辑,删除表中字段
 *
 */
namespace Org\Util;
class Msqlstruct
{
    /*
     * 创建数据库,
     * table 要查询的表名
     */
    function createTable($sql,$table){
       M()->execute($sql);
       return $this->checkTable($table);
    }
    /**
     *删除表
     * @param 表明 $table
     * return bool    
     */
    function dropTable($table){
        $sql="DROP TABLE `__PREFIX__{$table}`";  
        M()->execute($sql);       
        return true;
      
    }
    /*
     * 检测表是否存在,也可以获取表中所有字段的信息
     * table 要查询的表名
     * return 表里所有字段的信息
     */
    function checkTable($table){
       $sql="desc `__PREFIX__{$table}`";
       $info=M()->execute($sql);
        return $info;
    }
    
    /*
     * 检测字段是否存在,也可以获取字段信息(只能是一个字段)
     * table 表名
     * field 字段名
     */
    function checkField($table,$field){
        $sql='desc `__PREFIX__'.$table.'` `'.$field.'`'; 
        $info=M()->execute($sql);                       
        return $info;
    }
    
    /*
     * 添加字段
     * table 表名
     * info  字段信息数组 array
     * return 字段信息 array
     */
    function addField($table,$info){
        $sql="alter table `__PREFIX__{$table}` add ";               
        $sql.=$this->filterFieldInfo($info);  
        M()->execute($sql);              
       return $this->checkField($table,$info['name']);
    }
    
    /*     
     * 修改字段类型
     * 不能修改字段名称,只能修改
     */
    function editField($table,$info){
        $sql="alter table `__PREFIX__{$table}` modify ";
        $sql.=$this->filterFieldInfo($info);     
        M()->execute($sql);      
       return $this->checkField($table,$info['name']);
    }
    /**
     * 修改字段名称
     * alter table     tablename    change   old_field_name    new_field_name  old_type;
     */
    function changeField($table,$old_field_name,$info){
        $sql="alter table `__PREFIX__{$table}` change  `{$old_field_name}` ";
        $sql.=$this->filterFieldInfo($info);
        M()->execute($sql);    
       return $this->checkField($table,$info['name']);
    }
             
    
    /*
     * 字段信息数组处理,供添加更新字段时候使用
     * info[name]   字段名称
     * info[type]   字段类型
     * info[length]  字段长度
     * info[isNull]  是否为空
     * info['default']   字段默认值
     * info['comment']   字段备注
     */
    private function filterFieldInfo($info){        
        if(!is_array($info))
            return
            $newInfo=array();
        $newInfo['name']=$info['name'];
        $newInfo['type']=$info['type'];
        switch($info['type']){
            case 'varchar':
            case 'char':                
                $newInfo['length']=empty($info['length'])?100:$info['length'];               
                $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
                $newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default'];
                $newInfo['comment']=empty($info['comment'])?'':'COMMENT '."'".$info['comment']."'";
                break;
            case 'int':
                $newInfo['length']=empty($info['length'])?7:$info['length'];
                $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
                $newInfo['default']=empty($info['default'])?'':'DEFAULT '.$info['default'];
                $newInfo['comment']=empty($info['comment'])?'':'COMMENT '."'".$info['comment']."'";
                break;
            case 'text':
                $newInfo['length']='';
                $newInfo['isNull']=$info['isNull']==1?'NULL':'NOT NULL';
                $newInfo['default']='';
                $newInfo['comment']=empty($info['comment'])?'':'COMMENT '."'".$info['comment']."'";
                break;
        }      
        $sql="`".$newInfo['name']."` ".$newInfo['type']." ";
        $sql.=(!empty($newInfo['length']))?'('.$newInfo['length'].') ':' ';
        $sql.=$newInfo['isNull'].' ';
        $sql.=$newInfo['default'];
        $sql.=$newInfo['comment'];
        return $sql;
    }
    
    /*
     * 删除字段
     * 如果返回了字段信息则说明删除失败,返回false,则为删除成功
     */
    function dropField($table,$field){
        $sql="alter table `__PREFIX__{$table}` drop column `{$field}`";
        M()->execute($sql);
        if($this->checkField($table,$field)){
            return false;
        }else{
            return true;
        }
    }
    
    /*
     * 获取指定表中指定字段的信息(多字段)
     */
    function getFieldInfo($table,$field){
        $info=array();
        if(is_string($field)){
            $this->checkField($table,$field);
        }else{
            foreach($field as $v){
                $info[$v]=$this->checkField($table,$v);
            }
        }
        return $info;
    }
    
}

?>

标签: php

评论(0) 浏览(2327)

vc 用GDI将jpg图片从文件 复制到黏贴版.

2015-3-24 奇Yu 系统编程

这是很久以前的方法了。当时为了将JPG图片复制到黏贴版。在网上搜了很多。。

大多少的文章都是千遍一律的转载。

讲的都是Bmp的复制。并且还有错。

后来我使用GDI 实现的。

今天偶然翻到这个文件夹 将方法放在这。


//打开黏贴版
	
     if(OpenClipboard()) 
	{ 
	EmptyClipboard(); 
	CBitmap* junk   =   new   CBitmap(); 
	CClientDC   cdc(this); 
	CDC   dc; 
	dc.CreateCompatibleDC(&cdc); 
	CRect   client(0,0,300,300); 
	junk-> CreateCompatibleBitmap(&cdc,client.Width(),client.Height()); 
	dc.SelectObject(junk); 
	//使用GDI得到图片
	Bitmap pBitmap(L"F:\\aaa.jpg");
	Status status = pBitmap.GetLastStatus();
	Graphics graphics(dc);
	HBITMAP hBitmap=NULL;
	if(Ok == status)
	{
		status = pBitmap.GetHBITMAP(Color(0,0,0), &hBitmap);
	}	
	Bitmap bitmap(hBitmap, NULL);

	//画图
	graphics.DrawImage(&bitmap, Rect(0,0,300,300)); 
	
	
	

	//复制数据到剪贴板 
	SetClipboardData(CF_BITMAP,junk-> m_hObject); 
	CloseClipboard(); 
graphics.ReleaseHDC(dc);

		DeleteObject(junk);
		DeleteObject(&bitmap);
		DeleteObject(hBitmap);
		DeleteObject(&pBitmap);
		

		cdc.DeleteDC();
		dc.DeleteDC();
	

	delete   junk; 
	} 


标签: vc mfc

评论(0) 浏览(2734)

zend studio 12 离线汉化 和破解

2015-3-20 奇Yu 乱七八糟

首先提供一个 zend studio 12汉化的百度连接地址

http://pan.baidu.com/s/1dD5x1cd

下载后解压



安装方法

Help–> Install New Software..

然后

QQ截图20150320195013.png

QQ截图20150320195040.png

QQ截图20150320195141.png

然后就是 下一步

接受

 完成



关于破解

http://pan.baidu.com/s/1eQ1rEng

将下载的文件 覆盖掉

ZendStudio 安装目录下plugins目录下的 plugins的com.zend.verifier_12.0.0.v20141115-2331.jar



注意:如果你的版本不是这个版本

一个最简单的方法

就是 在 plugins目录下 搜索 com.zend.verifier_前半部分。

这时候就会出现一个 你将这个文件的 文件名 复制然后将刚下载的 破解文件重命名成这个文件名。然后覆盖这个文件

在启动看看。已经破解。百试不爽。。


评论(0) 浏览(5861)

Powered by emlog 豫ICP备14014990号-1 sitemap