ThinkPHP 内置的 add 方法用于向数据表添加数据,相当于 SQL 中的 INSERT INTO 行为。
ThinkPHP Insert 添加数据
添加数据 add 方法是 CURD(Create,Update,Read,Delete / 创建,修改,读取,删除)中的 Create 的实现,ThinkPHP 支持以普通数组方式和面向对象方式将数据写入数据表。
现在以《PHP MySQL 数据库教程》中 *** 作 user 表数据的例子(具体参见:MySQL Insert into 添加数据)为例,来演示如何在 ThinkPHP 中实现对数据表的数据添加 *** 作。
要先create再add,create可以根据表单自动创建数据库数据,也可以对传入的参数进行验证和过滤(在model里用_validate指定规则)。add直接插入create之后的数据,或者把传入的数组直接插入数据库
<php
class MysqlManage{
/创建数据库,并且主键是aid
table 要查询的表名
/
function createTable($table){
$sql="CREATE TABLE IF NOT EXISTS `$table` (`aid` INT NOT NULL primary key)ENGINE = InnoDB;";
M()->execute($sql);
$this->checkTable($table);
}
/
table 要查询的表名
return 表里所有字段的信息
/
function checkTable($table){
$sql="desc `$table`";
$info=M()->execute($sql);
return $info;
}
/
检测字段是否存在,也可以获取字段信息(只能是一个字段)
table 表名
field 字段名
/
function checkField($table,$field){
$sql='desc `$table` $field';
$info=M()->execute($sql);
return $info;
}
/
添加字段
table 表名
info 字段信息数组 array
return 字段信息 array
/
function addField($table,$info){
$sql="alter table `$table` add column";
$sql=$this->filterFieldInfo();
M()->execute($sql);
$this->checkField($table,$info['name']);
}
/
修改字段
不能修改字段名称,只能修改
/
function editField($table,$info){
$sql="alter table `$table` modify ";
$sql=$this->filterFieldInfo($info);
M()->execute($sql);
$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 `$table` drop column $field";
M()->execute($sql);
$this->checkField($table,$filed);
}
/
获取指定表中指定字段的信息(多字段)
/
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;
}
}
以上就是关于怎样用onethinkphp写增删改查全部的内容,包括:怎样用onethinkphp写增删改查、thinkphp数据库 *** 作、thinkphp 怎么实现对mysql做到创建表,修改字段,添加字段,删除字段等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)