【程式設計】PHP 使用 PDO 操作 MySQL 教學基礎語法

這篇文章快速介紹PHP如何對資料庫進行新增、刪除、修改、查詢等功能。PHP連結MySQL可以使用mysql模組、mysqli模組及PDO模組,由於目前新版的PHP建議使用PDO來操作資料庫,因此本文內容將以PDO模組為主,本文語法同樣適用MariaDB。

1連接/關閉資料庫

        
            // PDO 連線設定
            $options = [
                PDO::ATTR_PERSISTENT => false,
                PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                PDO::ATTR_EMULATE_PREPARES => false,
                PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8mb4'
            ];

            //資料庫連線
            try {
                $PDO = new PDO('mysql:host=資料庫位址;port=連接連接埠;dbname=資料庫名稱', '帳號', '密碼', $options);
                $PDO->exec('SET CHARACTER SET utf8mb4');
            } catch (PDOException $e) {
                throw new PDOException($e->getMessage());
            }

            //關閉資料庫
            unset($PDO);
        
    

詳細的PDO連線設定請參考下列網址:

2新增

        
            $data = ['1', 'test0001'];
            $sql = 'INSERT INTO user (sn, account) VALUES (?, ?)';
            $sth = $pdo->prepare($sql);
            try {
                if ($sth->execute($data)) {
                    echo '新增成功';
                } else {
                    echo '新增失敗';
                }
            } catch (PDOException $e) {
                echo '新增失敗';
            }
        
    

大家是否有發現VALUES的地方是用問號,這邊的問號會自動被$data的資料依序取代。

3刪除

        
            $query = 'DELETE FROM user WHERE sn = 1';
            $sth = $pdo->prepare($query);
            try {
                if ($sth->execute()) {
                    echo '刪除成功';
                } else {
                    echo '刪除失敗';
                }
            } catch (PDOException $e) {
                echo '刪除失敗';
            }
        
    

4修改

        
            $data = ['test0002'];
            $query = 'UPDATE user SET account = ? WHERE sn = 1';
            $sth = $pdo->prepare($query);
            try {
                if ($sth->execute($data)) {
                    echo '修改成功';
                } else {
                    echo '修改失敗';
                }
            } catch (PDOException $e) {
                echo '修改失敗';
            }
        
    

5查詢

        
            $sql = 'SELECT * FROM user WHERE sn = :sn';
            $stmt = $pdo->prepare($sql);
            $stmt->bindValue(':sn', '1');
            $stmt->execute();

            // 取得單筆資料
            $stmt->fetch(PDO::FETCH_ASSOC);

            // 取得多筆資料
            $stmt->fetchAll(PDO::FETCH_ASSOC);
        
    

6附註

延伸閱讀

Facebook 留言