首发于: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; }