php连接数据库并操作,php连接数据库的操作

今天主要学习了thinkPHP中对数据库连接的一些操作 首先是配置文件的书写

在项目的conf 下的config.php中配置数据库的一些参数

return array(

//'配置项'=>'配置值'

//数据库的配置

'DB_TYPE' => 'mysql', // 数据库类型

'DB_HOST' => 'localhost', // 服务器地址

'DB_NAME' => 'f1', // 数据库名

'DB_USER' => 'root', // 用户名

'DB_PWD' => '', // 密码

'DB_PORT' => '3306', // 端口

'DB_PREFIX' => "",

//数据库的主从读写分离

//"DB_RW_SEPARATE" => true,

//多个主数据库服务器

//"DB_MASTER_NUM" => "2",

);

?>

随后是几种数据模型的使用 实际上就是indexAction中方法的书写

首先是实例化基础模型model

$user = new Model("stu");//表名 表前缀 数据库的链接信息

在这里因为表前缀和数据库的连接信息已经在配置文件中写好,因此可以忽略

随后进行查询 进行dump化的输出即可

$data = $user->select();

dump($data);

同时可以用M方法来进行简写

$user = M("stu");

$data = $user->select();

dump($data);

第二种是实例化用户自定义的模型

顾名思义要创建属于用户自己的类型

在model 下创建类型 注意命名规则 以表名加model.class.php命名

c70825b7244b

1.PNG

随后是自定义类的书写 继承自model 类 来自定义函数

class StuModel extends Model{

public function getInfo(){

//添加自己的业务逻辑

return 'hello world';

}

}

最后是实例化自定义的类

//实例化用户自定义模型

$user1 = new StuModel();

echo $user1->getInfo();

也可以用D方法来实例化用户自定义类型 这个D方法如果系统未找到这个类 也就是命名非常的重要 他就会自动使用M方法 来实例化基础模型 此时也可以进行dump的输出

//可以用D方法 没有找到自定义的模型可以去找M模型

$user2 = D("Stu");

echo $user2 -> getInfo();

$data2 = $user -> select();

dump($data2);

第三种是实例化公共模型 注意文件的命名 是CommonModel.class.php

在这个类中进行书写 可以定义一些项目中常用的函数等

class CommonModel extends Model{

public function strmake($str) {

return md5($str);

}

}

可以用实例化new 进行调用

//实例化公共模型

$user3 = new CommonModel();

echo $user3->strmake("cccccc");

同时若用户自定义的模型继承自common的话 可以用D方法进行实例化的调用 并且也可以调用公共类型的方法

$user4 = D("stu");

echo $user4 -> strmake("ccsss");

最后一种是实例化空模型 可以做两件事情 一种是query 执行查找等sql DML语句 还有一种是exucute语句 执行更新 删除等DDL语句

excute可以输出受影响的有几条记录 query语句可以输出 查找到的记录 随后dump输出即可

//实例化空模型

$model = M();

//可以做两件事情

$data3 = $model -> query("select * from stu");//负责读取 select

dump($data3);

$sql = "insert into stu (id firstname,lastname,email) values (555, 'Kevin','cao','ssss')";

$sqll = "update stu set firstname = 'Levin' where id = 1";

$num = $model -> execute($sql); //负责update insert等

echo $num;

随后是数据库的插入add

用M方法进行数据库的插入 个人认为就是控模型的插入

用add来插入一条记录 用addAll 来插入多条记录

$data1 = array(

"age" => 3,

);

$data = array(

0 => array ("age" => 22,),

1 => array ("age" => 23,),

2 => array ("age" => 24,),

);

//用all的方法

echo M("user") -> add($data1);

echo M("user")->addAll($data);

这里输出的第一个插入的记录的主键,随后若想debug 可以输出最后一条执行的sql语句

echo M() -> getLastSql();

查询语句where的几种书写

可以直接用M模型的select 语句

$data3 = M('user') ->select();

dump($data3);

或者用where条件中的加上字符串

$data3 = M("user")->where("age = 24") -> select();

// dump($data3);

可以用数组的方式 键是字段名 值是字段值

//使用数组的方式进行查询

$where["age"] = 222;

//随后进行赋值

$data3 = M("user") ->where($where) -> select();

dump($data3);

用数组进行多个条件的合并时 默认使用的and 所以可以改变逻辑值

//改变逻辑值

$where["_logic"] = "or";

有时候我们需要的是字段值大于哪个值 并且小于哪个值

可以用如下方法

//表达式的查询 eq neq egt gt lt elt between in notin

//$where["字段名"] = array(表达式 ,查询条件)

$where["age"] = array("gt",23);

$data3 = M("user") ->where($where) -> select();

同时 这个也可用于like的字符串匹配和between语句的使用 要注意此时的between的value值用,隔开区间

$where["age"] = array("between","21,25");

$data3 = M("user") ->where($where) -> select();

可以在where数组中添加字符串 建议不要和数组混合使用

/可以加个字符串

//$where["_string"] = "score > 10";

有时我们需要满足一个字段的值大于某个值 并且小于某个值 可以用数组嵌套数组的方法

$where["id"] = array(array("gt",23),array("lt",33),"or");

$data3 = M("user") ->where($where) -> select();

我们经常要做统计的事情 要记住max min sum avg都要加字段名 统计的是哪一个字段

echo M("user") -> count();

echo M("user") -> max("age");

echo M("user") -> avg("age");

echo M("user") -> sum("age");

更新的操作 要记住 用的是save 而不是update

$update["age"] = 33;

$where["age"] = 10;

echo M("user") -> where($where) -> save($update);

删除信息

要记住放在delete里面的只能是主键

echo M("user") -> where($where) -> delete(33);

这里返回的都是受影响的第一个字段的主键

还有在mysqlWorkBench中 默认是不能进行更新和删除的 因此要添加如下语句

set sql_safe_updates = 0

这样便可以在mysql workbench中进行更新和删除

个人认为sql语句记住的话,就可以用M模型的query或者excute来进行数据库的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值