CURD即为增删改查操作
DBMS数据库管理系统;
RDBMS关系型管理系统;
SQL编写规范:关键字全部大写,字段名、表名、使用反引号定界符;
增加: INSERT INTO `数据表`(`字段1`,`字段2`) VALUES(`值1`,`值2`);
修改: UPDATE `数据表` SET `字段1`='值1',`字段2`='值2' WHERE 更新条件;
删除: DETELE FROM '数据表' WHERE 删除条件;
查询: SELECT ‘字段列表’ FROM `数据表名` WHERE 查询条件;
要点: 给SQL语句模板中的变量绑定值 $stmt -> bindParam(':kb_name',$kb_name,PDO::PARAM_STR);
PDO::RARAM_STR表示SQL中的字符串类型
创建SQL语句对象 $stmt -> prepare($sql);
执行一条预执行语句 $stmt -> execute( );
返回新增的记录数量 $stmt ->rowCount( );
返回主键用:$pdo -> lastInserId( );
PDO::FETCH_ASSOC 将索引筛选出去;
bindColumn( ) — 绑定一列到一个 PHP 变量
连接数据库知识点: 用database写数据库信息,return返回一个数组,
用require 获取database脚本,连接数据库PDO
案例演示,分两个文件
<?php // 这是个database.php脚本 提供数据库信息 return [ 'type' => 'mysql', 'host' => '127.0.0.1', 'dbname' => 'php', 'username' => 'root', 'password' => 'root' ];
<?php // 这是个connect.php脚本 连接数据库 // 连接数据库: PDO //$dsn = '数据库的类型:host=数据库主机名;dbname=默认数据库名称'; $db = require 'database.php'; // $dsn $dsn = "{$db['type']}:host={$db['host']};dbname={$db['dbname']}"; $username = $db['username']; $password = $db['password']; try { $pdo = new PDO($dsn, $username, $password); // var_dump($pdo); } catch (PDOException $e) { die('连接失败' . $e->getMessage()); }
<?php //1.连接数据库/ require __DIR__ . '/inc/connect.php'; //2.创建sql语句模板 $sql = 'INSERT INTO `kebiao` SET `kebao_name`= :kebao_name ,`kebao_contant` =:kebao_contant'; // 创建SQL语句对象:预处理对象 $stmt = $pdo -> prepare($sql); //var_dump($stmt); //给SQL语句模板中的变量绑定值 $kebao_name = '化学'; $kebao_contant = '我也不知道都讲些啥'; $stmt ->bindParam(':kebao_name',$kebao_name,PDO::PARAM_STR); $stmt ->bindParam(':kebao_contant',$kebao_contant,PDO::PARAM_STR); //执行SQL语句 if ( $stmt -> execute()){ if ($stmt->rowCount()>0){ echo '成功的添加'. $stmt->rowCount().'条记录,主键:'.$pdo->lastInsertId(); } }else{ die('<pre>'.print_r($stmt->errorInfo(),true)); } //关闭链接 $pdo = null;
点击 "运行实例" 按钮查看在线实例
<?php // 连接数据库 require __DIR__ . '/inc/connect.php'; // 创建SQL语句对象 $stmt = $pdo -> prepare('INSERT INTO `shujubiao` SET `name`=:name,`detail`=:detail'); // 执行SQL语句 $stmt -> execute(['name'=>'名字','detail'=>'内容']); echo '成功的添加'.$stmt->rowCount().'条记录,主键:'.$pdo->lastInsertId(); // 关闭连接 $pdo = null ;
点击 "运行实例" 按钮查看在线实例
<?php require __DIR__ . '/inc/connect.php'; $stmt = $pdo -> prepare('UPDATE `表名` SET `name`=:name,`detail`=:detail WHERE `name_id`=:name_id '); $stme -> execute(['name'=>'名字','detail'=>'内容','name_id'=>2]); echo '成功更新'.$stmt->rowCount().'条记录'; $pdo = null;
点击 "运行实例" 按钮查看在线实例
SQL演示查询SELECT实例
<?php require __DIR__ .'/inc/connect.php'; $stmt = $pdo->prepare('SELECT * FROM `kebiao` WHERE `kb_time`=:time'); // *代表全部字段 $stmt ->execute(['time'=>'am']); // $kb = $stmt->fetch(PDO::FETCH_ASSOC); // // echo '<pre>'.print_r($kb,true); //遍历 // 第一种 // while($kb = $stmt->fetch(PDO::FETCH_ASSOC)){ // echo '<pre>'.print_r($kb,true); // } // 第二种 $kb = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($kb as $kb){ echo '<pre>'.print_r($kb,true); } // echo '<pre>'. print_r($stmt->fetchAll(PDO::FETCH_ASSOC),true); $pdo = null;
点击 "运行实例" 按钮查看在线实例
<?php require __DIR__ . '/inc/connect.php'; $stmt = $pdo->prepare('SELECT * FROM `kebiao` WHERE `kb_time`=:time'); $stmt -> execute(['time'=>'am']); $stmt ->bindColumn('kb_name',$name); $stmt ->bindColumn('kb_con',$contant); while ($stmt->fetch(PDO::FETCH_ASSOC)){ echo '课程名:'.$name . ' 简介:'.$contant.'<br>'; }
点击 "运行实例" 按钮查看在线实例