PHP通过(PDO)Mysql表字段一键生成创建sqlite的SQL
首发于:http://www.zzzzy.com/201406053158.html
/**
* Mysql表字段一键生成创建sqlite的SQL 2 * @author: Skiychan <contact@zzzzy.com>
* $db 数据库
* $tbname 表名
* $is_blob 需要保存的图片二进制数组 array("img1","img2","img3")形式,默认为false
* $retbname 自定义生成sqlite的表名
* return SQL的语句形式
*/
public function creat_sqlite($db, $tbname, $is_blob = false, $retbname = false){
$runsql1 = $db->query("SELECT * FROM `$tbname` limit 1");
$fields_rows = $runsql1->columnCount();
$tb_fields_info = array();
$tb_string = "";
$dot = "";
for ($i = 0; $i < $fields_rows; $i++) {
if ($i == 1) {
$dot = ", ";
}
$tb_meta = $runsql1->getColumnMeta($i);
$tb_string .= $dot.$tb_meta['name'];
//var_dump($tb_meta);
//如果存在数据且字段存在需要取消的字段中
if ($is_blob && in_array($tb_meta['name'], $is_blob)) {
$tb_string .= " "."blob";
} else {
//如果不需要保存为二进制
switch($tb_meta['native_type']){
case "VAR_STRING":
$tb_string .= " "."varchar";
break;
case "LONG":
$tb_string .= " "."integer";
break;
case "BLOB":
$tb_string .= " "."text";
break;
case "TINY":
$tb_string .= " "."smallint";
break;
}
}
if (isset($tb_meta['flags'][1]) && ($tb_meta['flags'][1] === "primary_key")) {
$tb_string .= " "."PRIMARY KEY";
}
if (isset($tb_meta['flags'][0]) && ($tb_meta['flags'][0] === "not_null")) {
$tb_string .= " "."NOT NULL";
}
//var_dump($tb_meta);
}
//生成的sqlite表名
$retbname = $retbname == true ? $retbname : $tbname;
//创建数据的SQL语句
$creat_data = "CREATE TABLE IF NOT EXISTS {$retbname} ($tb_string);";
return $creat_data;
}
PHP通过(PDO)Mysql表字段一键生成创建sqlite的SQL的更多相关文章
- MySQL 表字段操作
MySQL 表字段操作 一.增加表字段 1)mysql> alter table 二.删除表字段 三.修改表字段
- (转载)根据数据字典表定义的表结构,生成创建表的SQL语句
<来源网址:http://www.delphifans.com/infoview/Article_221.html>根据数据字典表定义的表结构,生成创建表的SQL语句 //1. 类名:T ...
- 一段完整的创建表格的SQL代码
一段完整的创建表格的SQL代码 使用SQL语句创建一张表,不仅可以可以快速熟悉SQL语句,还可以从这看出一个人对该技能点的熟悉程度. 这里先说明几点: PRIMARY KEY:主键,一张表中只允许有一 ...
- 做网站-mysql表字段设计
https://mp.weixin.qq.com/s/HhdbmQqKmiw9IVnnL0Zyag VARCHAR与CHAR如何选择 使用VARCHAR理由 字段不经常更新 字段比较长,且长度不均(比 ...
- Java之数据库表字段有关键字报错java.sql.SQLSyntaxErrorException
前两天在开发中遇到一个坑,本来我在快乐的做着增删改查,然后悲剧发生了,在查询数据库的过程中,报了java.sql.SQLSyntaxErrorException: 经过排查,是因为数据库表字段中存在关 ...
- Mysql表字段命令alter add
alter add命令用来增加表的字段. alter add命令格式:alter table 表名 add字段 类型 其他; 例如,在表MyClass中添加了一个字段passtest,类型为int(4 ...
- MySQL 表字段唯一性约束设置方法unique
1. 建表时加上唯一性约束 CREATE TABLE `t_user` ( `Id` int(11) NOT NULL AUTO_INCREMENT, -- 自增 `username` varchar ...
- mysql 表字段不能使用type???
type 字段 可能跟系统内置字段有冲突吧
- C#读取MySql表字段出现System.Byte[]问题
记录下,用了多字段拼接后在程序中查询出的结果为System.Byte[],而在数据库中查正常 解决办法为:加Convert转换编码 select CONVERT((CASE background ...
随机推荐
- kali linux 之 DNS信息收集
[dig]命令的使用: dig是linux中的域名解析工具,功能比nslookup强很多,使用也很方便. windows系统下使用dig须下载安装一下. 使用方法: root@kali:~# dig ...
- Angular和jQuery的ajax请求的差别
近期项目中使用angular,结果发现后台没法获取參数,所以,略微研究了一下两者在发送ajax时的差别. 注意angular和jquery的ajax请求是不同的. 在jquery中,官方文档解释con ...
- uva 11270 - Tiling Dominoes(插头dp)
题目链接:uva 11270 - Tiling Dominoes 题目大意:用1∗2木块将给出的n∗m大小的矩阵填满的方法总数. 解题思路:插头dp的裸题,dp[i][s]表示第i块位置.而且该位置相 ...
- Android Studio中Gradle使用详解
一)基本配置 build配置 buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools. ...
- 自定义URL Scheme完全指南
iPhone / iOS SDK 最酷的特性之一就是应用将其自身”绑定”到一个自定义 URL scheme 上,该 scheme 用于从浏览器或其他应用中启动本应用. 注册自定义 URL Scheme ...
- acmer -- 最美的情书
2014-09-29 20:51:45 POJ 2482 Fleeting time does not blur my memory of you. Can it really be 4 years ...
- sqlserver 连不上的问题
tcp ip 属性 ipall 属性改为1433
- PHP 概述 特点 基础语法
PHP是什么 http://php.net/manual/zh/intro-whatis.php#intro-whatis PHP(Hypertext Preprocessor,超文本预处理器)是一 ...
- Hashtable和HashMap类
Hashtable和HashMap类有三个重要的不同之处. 第一个不同主要是历史原因.Hashtable是基于陈旧的Dictionary类的,HashMap是Java 1.2引进的Map接口的一个实现 ...
- 数据库sharding(scale up to scale out)
sharding是将一个大数据库按照一定规则拆分成多个小数据库的一门技术. 当我们的应用数据量越来越多,访问量越来越大的时候,我们会作何选择?继续提升数据库服务器的性能还是采用一项技术让数据库平滑扩展 ...