美文网首页
php连接数据库的操作

php连接数据库的操作

作者: KevinSwiftHHH | 来源:发表于2016-08-05 17:10 被阅读0次

今天主要学习了thinkPHP中对数据库连接的一些操作 首先是配置文件的书写
在项目的conf 下的config.php中配置数据库的一些参数

<?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命名

1.PNG

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

<?php
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
在这个类中进行书写 可以定义一些项目中常用的函数等

<?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来进行数据库的操作

相关文章

  • MySQL数据库基础操作(1)

    一、php连接数据库与基本操作 (1)php创建数据库连接 语法:Object mysqli_connec...

  • 6PHP 操作 MySQL 数据库

    [TOC] PHP 操作 MySQL 数据库 连接 MySQL 服务器,连接数据库 进行数据库的操作(CURD) ...

  • PHP 5.5.12连接数据库操作

    PHP 5.5.12连接数据库操作

  • php操作数据库

    PHP操作MySQL 每日目标 能够使用php连接MySQL数据库 能够使用php对MySQL进行查询操作 能够使...

  • PHP笔记6用户登陆与分页原理

    PHP操作MySQL (1)PHP连接数据库 (2)选择要操作的数据库名称 (3)设置字符集 (4)执行各种SQL...

  • 【TP5-04】数据库

    1、连接数据库(appliation/database.php) 2、操作数据库(CURD) 2.1、创建// 插...

  • php笔记(2)

    通过 PHP,您可以连接和操作数据库。MySQL 是跟 PHP 配套使用的最流行的开源数据库系统。 MySQL 是...

  • PHP(2)

    通过 PHP,您可以连接和操作数据库。MySQL 是跟 PHP 配套使用的最流行的开源数据库系统。 MySQL 是...

  • 2018-12-11

    PHP连接Mysql和一些基本操作 建立数据库连接 查询语句 取出执行语句受影响行数

  • Laravel 操作数据库(原始查询 查询构造器)

    连接数据库主要操作文件:config/database.php .env config/databas...

网友评论

      本文标题:php连接数据库的操作

      本文链接:https://www.haomeiwen.com/subject/xoohsttx.html