博客列表 >mysql和PDO数据库的连接以及增删改查功能--2018年08月31日18时13分

mysql和PDO数据库的连接以及增删改查功能--2018年08月31日18时13分

一根火柴棒的博客
一根火柴棒的博客原创
2018年08月31日 18:14:39980浏览

1.编程:MySQLi面向对象中的查询操作:


实例

<?php

error_reporting(E_ALL ^E_WARNING);

$mysqli = new mysqli('127.0.0.1','root','root','user');

if ($mysqli->connect_errno)
{
    die('连接失败'.$mysql->connect_errno.':'.$mysql->connect_error);
}else{
    echo '连接成功';
}


$sql = "SELECT `id`,`name`,`age` FROM `name` WHERE `age`> ? ;";//创建查询sql语句

$tmp = $mysqli->stmt_init();//初始化预处理对象


if ($tmp->prepare($sql)) {

    $tmp->bind_param('i', $age);

    $age = 5;

    if ($tmp->execute()) {
        $tmp->store_result();//保存变量到缓存

        $tmp->bind_result($id, $name, $age);//结果集绑定到变量上

        //结果集是否不为,只有不为空的时候才遍历
        if ($tmp->num_rows > 0) {
            // 循环遍历结果集
            while ($tmp->fetch()) {
                echo '<p>id:'.$id.'---姓名:'.$name.'---年龄:'.$age.'</p>';
            }

        }else {
            exit('<p>当前表中没有数据</p>');
        }
    }else {
        //返回执行阶段的出错信息
        exit($stmt->errno . ': ' . $stmt->error);
    }
} else {
    //返回执行阶段的出错信息
    exit($stmt->errno . ': ' . $stmt->error);
    }

运行实例 »

点击 "运行实例" 按钮查看在线实例


2. 问答: PDO 的优势:

答:PDO操作起来更方便,更便捷,有更多的封装函数,有预处理对象,减少和降低外部对SQL的注入攻击,易于在不同数据库之间进行转换


3. 编程:PDO 连接数据库:


实例

<?php

$dsn = 'mysql:host=127.0.0.1; dbname=user';


//PDO数据库连接
try{
    $pdo = new PDO($dsn,'root','root');
    echo '连接成功','</br>';
}catch(PDOException $e){
    die('连接错误'.$e->getMessage());
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

4. 编程:PDO新增数据:


实例

<?php

$dsn = 'mysql:host=127.0.0.1; dbname=user';


//PDO数据库连接
try{
    $pdo = new PDO($dsn,'root','root');
    echo '连接成功','</br>';
}catch(PDOException $e){
    die('连接错误'.$e->getMessage());
}



//PDO新增数据

$sql = "INSERT `name` SET `name`=:name,`age`=:age";

//创建与处理对象

$stmt = $pdo->prepare($sql);

//设置添加数据数组
$data = ['name'=>'alex','age'=>34];

$stmt->bindParam(':name',$data['name'],PDO::PARAM_STR);
$stmt->bindParam(':age',$data['age'],PDO::PARAM_INT);

if ($stmt->execute())
{
    echo '<h3>成功添加了'.$stmt->rowcount().'条数据</h3>';
}else{
    echo '<h3>添加失败</h3>';
    print_r($stmt->errorInfo());
    exit();
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

5.编程: PDO更新数据:


实例

<?php

$dsn = 'mysql:host=127.0.0.1; dbname=user';


//PDO数据库连接
try{
    $pdo = new PDO($dsn,'root','root');
    echo '连接成功','</br>';
}catch(PDOException $e){
    die('连接错误'.$e->getMessage());
}


//PDO更新数据

$updatesql = "UPDATE `name` SET `name`= :name WHERE `id`= :id";

$stmt = $pdo->prepare($updatesql);

if ($stmt->execute(['name'=>'小二郎','id'=>3]))
{
    echo '<h3>更新了'.$stmt->rowcount().'条数据</h3>';
}else{
    echo '<h3>更新失败</h3>';
    print_r($stmt->errorInfo());
    exit();
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

6. 编程: PDO 删除数据:


实例

<?php

$dsn = 'mysql:host=127.0.0.1; dbname=user';


//PDO数据库连接
try{
    $pdo = new PDO($dsn,'root','root');
    echo '连接成功','</br>';
}catch(PDOException $e){
    die('连接错误'.$e->getMessage());
}



//PDO删除数据

//删除sql语句
$deletesql = "DELETE FROM `name` WHERE `id`= :id";

$stmt = $pdo->prepare($deletesql);

if ($stmt->execute(['id'=>1]))
{
    echo '<h3>删除了'.$stmt->rowcount().'条数据</h3>';
}else{
    echo '<h3>删除失败</h3>';
    print_r($stmt->errorInfo());
    exit();
}

运行实例 »

点击 "运行实例" 按钮查看在线实例

7. 编程:PDO查询数据:


实例

<?php

$dsn = 'mysql:host=127.0.0.1; dbname=user';


//PDO数据库连接
try{
    $pdo = new PDO($dsn,'root','root');
    echo '连接成功','</br>';
}catch(PDOException $e){
    die('连接错误'.$e->getMessage());
}


//PDO查询数据

//查询sql语句
$selectsql = "SELECT `name`,`id` FROM `name` WHERE `age` > :age";
$stmt = $pdo->prepare($selectsql);

$stmt->execute(['age'=>0]);

//循环查询
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
    echo var_export($row),'</br>';
}


$stmt = null;

$pdo = null;

运行实例 »

点击 "运行实例" 按钮查看在线实例

8.问答:获取结果集记录数量的正确方式是什么?

答:用SQL语句 "count(*)"来查询 ,最后用PDO里的 fetchColumn()获取

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议