PDO:PHP数据库连接对象,可以连接各种PHP支持的数据库
MySql:关系型数据库管理系统,存储管理数据
数据库基本操作:增删改查insert
,delete
,update
,select
流程
1.在本地mysql数据库中创建一张表:merchant_copy,包含字段id
,merchant_name
,city
,address
, phone
,create_time
2.定义一个Db类,创建连接和操作数据库的方法
3.依次调用增删改查方法
1.创建数据表
表名:merchant_copy
字段 | 数据类型 | 长度 | 备注 |
---|---|---|---|
id | int | 2 | 主键 |
merchant_name | varchar | 100 | 商户名称 |
city | varchar | 50 | 所在城市 |
create_time | int | 11 | 创建时间 |
update_time | int | 11 | 更新时间 |
address | varchar | 255 | 地址 |
phone | char | 12 | 电话 |
2.创建Db类
<?php
//数据库操作类
class Db{
public static $link = null;//保存pdo连接
public static $sql = null;//保存语句
//使用构造函数连接数据库
public function __construct($dsn,$username,$password){
try{
self::$link = new PDO($dsn,$username,$password);
if(empty(self::$link)){
echo '数据库连接失败';
}
}catch(Exception $e){
echo $e->getMessage();
}
}
//新增数据
public static function add($data){
//预处理sql语句,使用占位符
$sql = "INSERT `merchant_copy` SET `merchant_name`= ? , `city`=?, `address`=?, `phone`=?,`create_time`=?";
$stmt = self::$link->prepare($sql);
//执行查询语句
$stmt->execute($data);
if($stmt->rowCount()===1){
return self::$link->lastInsertId();//获取新增的主键ID
}else{
return $stmt->errorInfo();
}
}
//查询数据
public static function find($sql){
//预处理sql语句
$stmt = self::$link->prepare($sql);
//执行查询语句
$stmt->execute();
return $stmt->fetchAll(PDO::FETCH_ASSOC);
}
//更新数据
public static function update($data)
{
//预处理sql语句,使用占位符
$sql = "update `merchant_copy` SET `address`=?, `phone`=?,`update_time`=? where `id`=?";
$stmt = self::$link->prepare($sql);
//执行查询语句
$stmt->execute($data);
if($stmt->rowCount()){
return $stmt->rowCount();//返回受影响的记录数
}else{
return $stmt->errorInfo();
}
}
//删除数据
public static function delete($table,$where)
{
$sql = "DELETE FROM $table WHERE {$where}";
$stmt = self::$link->prepare($sql);
$stmt->execute();
if($stmt->rowCount()){
return $stmt->rowCount();//返回受影响的记录数
}else{
return $stmt->errorInfo();
}
}
}
3.调用类中的方法操作数据
//数据库连接参数,
$dsn = "mysql:host=localhost;dbname=www.merchant.office;charset=utf8;port=3306;";
$username = 'merchant';
$password = 'merchant';
$db = new Db($dsn,$username,$password);//实例化Db类
//查询
$sql = "select `merchant_name` from `merchant_copy` where `id` <2 ";
print_r($db::find($sql));
//输出Array
// (
// [0] => Array
// (
// [merchant_name] => 北门小吃
// )
// [1] => Array
// (
// [merchant_name] => 东门小吃
// )
// )
//新增
echo $db::add(['中门小吃','北京市','南门','10546254256',time()]);//新增主键:5
//更新
echo $db::update(['东门小吃街108号','10846254256',time(),2]);//更新1条
//删除
echo $db::delete('merchant_copy','id>4');//删除一条