php利用PDO对数据库的操作练习

刚从python转来做php,目前在学习laravel框架,新项目准备基于laravel框架的前后端分离模式。
这次练习,需要两个文件,分别是index.html,index.php。
index.html做为前端静态页面,通过ajax做数据请求,这么做是为了复习一下ajax的写法。

index.html



	
    
    
    CHUENG


点击向后端发送请求!




index.php

conn = new PDO(
                "mysql:host=$this->servername;dbname=$this->dbname;",
                $this->username,
                $this->password
            );
            // 设置 PDO 错误模式为异常
            $this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        } catch (PDOException $e) {
            $e->getMessage();
        }
    }

    // 由这个函数来new一个类的实例,进而实现单例需求.
    public static function getInstance()
    {
        if (is_null(self::$_instance)) {
            self::$_instance = new PdoDB();
        }
        return self::$_instance;
    }

    public function __clone()
    {
        die('Clone is not allowed.' . E_USER_ERROR);
    }

    // 程序结束后自动调用该函数,这里不设置成私有方法,是为了让实例自行调用.
    public function __destruct()
    {
        $this->conn = NULL;
    }

    // 创建数据库
    public function create($data)
    {
        try {
            $sql = "CREATE DATABASE $data ;";
            // 使用 exec() ,没有结果返回
            $this->conn->exec($sql);
            echo $data . '数据库创建成功!';
        } catch (PDOException $e) {
            echo $sql . '
' . $e->getMessage(); } } // 查询数据库 public function check($data) { try { $result = $this->conn->query($data)->fetchAll(PDO::FETCH_ASSOC); echo '
';
            //var_dump($result);
            $result_json = json_encode($result);
            echo $result_json;
        }
        catch (PDOException $e) {
            echo $data . '
' . $e->getMessage(); } } public function insert($data) { try { $result = $this->conn->exec($data); echo $result; } catch (PDOException $e) { echo $data . '
' . $e->getMessage(); } } } $db = PdoDB::getInstance(); switch ($_GET['action']) { case 'connect': echo '数据库连接成功!'; break; case 'create': $db->create($_GET['dbname']); break; case 'check': $db->check($_GET['query']); break; case 'insert': $db->insert($_GET['insert']); break; default: break; }

你可能感兴趣的:(php)