• PDO中的存储过程的详细介绍


    PDO中存储过程允许在更接近于数据的位置操作数据,从而减少带宽的使用,它们使数据独立于脚本逻辑,允许使用不同语言的多个系统以相同的方式访问数据,从而节省了花费在编码和调试上的宝贵时间,同时他使用预定义的方案执行操作,提高查询速度,并且能阻止与数据的直接相互作用,从而起到保护数据的作用!

    上一篇文章《PDO中的事务处理具体介绍》中,我们介绍了关于PDO的事务处理,那么我们这篇文章给大家介绍PDO中的存储过程!大理石构件维修

    首先来讲解如何在PDO中调用存储过程,这里先创建一个存储过程,其SQL语句如下:

    1

    2

    3

    4

    5

    6

    7

    drop procedure if exists pro_reg;

    delimiter//

    create procedure pro_reg(in nc varchar(80),in pwd varchar(80), in email varchar(80),in address varchar(50))

    begin

    insert into tb_reg(name,pwd,email,address)values(nc,pwd,email,address);

    end;

    //

    “drop”语句删除MySQL服务器中已经存在的存储过程pro_reg。

    “delimiter//”的作用是将语句结束符更以为“//”。

    “in nc varchar(80).......in address varchar(50)”表示要向存储过程中传入的参数。

    “begin......end”表示存储过程中的语句块,它的作用类似与PHP语言中的“{.......}”。

    存储过程创建成功后,下面调用存储过程,实现用户注册信息的添加操作,具体步骤如下。

    创建index.php文件。首先,创建form表单,将用户信息通过POST方法提交到本页。然后,在本页中编写PHP脚本,通过PDO连接MySQL数据库,并且设置数据库编码格式为UTF-8,获取表单中提交的用户注册信息。接着,通过call语句调用存储过程pro_reg,将用户注册信息添加到数据表中。最后,通过try...catch...语句块返回错误信息。关键代码如下:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    <form name="form1" action="4.php" method="post">

        用户昵称:<input type="text" name="nc"><br>

        密   码:<input type="password" name="password"><br>

        邮   箱:<input type="text" name="email"><br>

        <input type="submit" name="Submit" value="注册">

        <input type="submit" name="Submit" value="重写">

    </form>

    <?php

    if($_POST["Submit"]){

    header("Content-Type:text/html; charset=utf-8");    //设置页面的编码格式

    $dbms = "mysql";                                  // 数据库的类型

    $dbName ="php_cn";                                //使用的数据库名称

    $user = "root";                                   //使用的数据库用户名

    $pwd = "root";                                    //使用的数据库密码

    $host = "localhost";                              //使用的主机名称

    $dsn  = "$dbms:host=$host;dbname=$dbName";

    try {

        $pdo = new PDO($dsn, $user, $pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo

     $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

        $nc = $_POST['nc'];

        $password = md5($_POST['password']);

        $email = $_POST['email'];

        $query = "call pro_reg('$nc','$password','$email')";

        $res = $pdo->prepare($query);//准备查询语句

        if ($res->execute()) {

            echo "添加数据库成功";

        } else {

            echo "添加数据库失败";

        }

    }catch (PDOException $e){

        echo "PDO Exception Caught";

        echo 'Error with the database:<br>';

        echo 'SQL Query;'.$query;

        echo '<pre>';

        echo "Error:".$e -> getMessage()."<br>";

        echo "Code:".$e ->getCode()."<br>";

        echo "File:".$e ->getFile()."<br>";

        echo "Line:".$e ->getLine()."<br>";

        echo "Trace:".$e ->getTraceAsString()."<br>";

        echo  "</pre>";

    }

    }

  • 相关阅读:
    技巧和诀窍;在VS 2005里优化ASP.NET 2.0Web项目的Build性能
    [资源]Flex 中文帮助
    13 Awesome Javascript CSS Menus
    兼容FF\IE的事件获得方法
    MSVCR80D.dll not found解决方案
    [转]一种革命性的自绘菜单实现
    [ZZ]马化腾关于产品设计与用户体验的培训
    [ZZ]WatiN:在.NET中测试Web应用程序
    How to Recommender Systems?
    淘宝第三届D2在上海举办
  • 原文地址:https://www.cnblogs.com/furuihua/p/12187376.html
Copyright © 2020-2023  润新知