介绍
介绍
福哥更新了TFPHP框架的TFDO数据库操作对象的insert、update、delete逻辑,优化了编译SQL语句的逻辑,执行速度会更快。同时福哥还重写了upsert方法的逻辑,改为先SELECT目标数据,再判断结果,有数据就UPDATE,没有数据就INSERT。
TFDO
这是TFPHP框架的数据库操作对象,名字空间是TFPHP\Database\SQL,基于PDO扩展实现。
insert
参数
$table | string | 数据表名称 |
$data | array | 插入数据表的数据,数组下标是字段名称,数组值是字段值 |
$dataType | array | 插入数据表的数据的类型,默认情况下会根据$data数组值的类型判断。除此之外,还有一些高级的类似可以满足一些特殊的需求 |
返回值
返回值是一个bool类型的值,插入成功了就真,否则就是假。通常情况下,插入失败了就会触发异常,所以可以根据异常信息判断错误原因。
示例
插入一条记录导user表。
try { $tfdo->insert("user", array( 'userName'=>"鬼谷子六姑爹" )); var_dump($tfdo->getLastInsertID()); } catch (Exception $e){ print_r($e->getMessage()); }
update
参数
$table | string | 数据表名称 |
$data | array | 更新数据表的数据,数组下标是字段名称,数组值是字段值 |
$dataType | array | 更新数据表的数据的类型,默认情况下会根据$data数组值的类型判断。除此之外,还有一些高级的类似可以满足一些特殊的需求 |
$where | string | 更新条件的部分SQL语句 |
$whereData | array | 更新条件的数据,对应$where的“@xxx”变量 |
返回值
返回值是一个bool类型的值,更新成功了就真,否则就是假。通常情况下,更新失败了就会触发异常,所以可以根据异常信息判断错误原因。
示例
更新user表的信息。
try { $tfdo->update("user", array( 'userEmail'=>"ggz-lgd@tongfu.net" ), null, "userId = @int", array( 40 ) ); } catch (Exception $e){ print_r($e->getMessage()); }
delete
参数
$table | string | 数据表名称 |
$where | string | 删除条件的部分SQL语句 |
$whereData | array | 删除条件的数据,对应$where的“@xxx”变量 |
返回值
返回值是一个bool类型的值,删除成功了就真,否则就是假。通常情况下,删除失败了就会触发异常,所以可以根据异常信息判断错误原因。
示例
删除user表的信息。
try { $tfdo->delete("user", "userId = @int", array( 40 )); } catch (Exception $e){ print_r($e->getMessage()); }
upsert
参数
$table | string | 数据表名称 |
$data | array | 更新数据表的数据,数组下标是字段名称,数组值是字段值 |
$dataType | array | 更新数据表的数据的类型,默认情况下会根据$data数组值的类型判断。除此之外,还有一些高级的类似可以满足一些特殊的需求 |
$keyData | array | 更新数据表的条件的数据,数组下标是字段名称,数组值是字段值 |
$keyDataType | array | 更新数据表的条件的数据的类型,默认情况下会根据$keyData数组值的类型判断。除此之外,还有一些高级的类似可以满足一些特殊的需求 |
返回值
返回值是一个bool类型的值,更新成功了就真,否则就是假。通常情况下,更新失败了就会触发异常,所以可以根据异常信息判断错误原因。
示例
创建一个user,使用upsert方法同步附属表user_profile,查询两个表的数据。
try { $insertRet = $tfdo->insert("user", array( 'userName'=>"鬼谷子八大姑" )); if($insertRet){ $newUserId = $tfdo->getLastInsertID(); if($newUserId > 0){ $tfdo->upsert("user_profile", array( 'nickName'=>"鬼谷子八大姑", 'birth'=>"2008-8-8" ), null, array( 'userId'=>$newUserId ), null); print_r($tfdo->fetchOne("select * from user where userId = @int", array($newUserId))); print_r($tfdo->fetchOne("select * from user_profile where userId = @int", array($newUserId))); } } } catch (Exception $e){ print_r($e->getMessage()); }
总结
福哥今天分享了整理过的TFDO对象的代码,更新后的TFDO对象速度更快,稳定性更好~~