首頁 >後端開發 >php教程 >PHP MySQL:將資料插入表中

PHP MySQL:將資料插入表中

藏色散人
藏色散人原創
2018-11-05 17:10:473129瀏覽

簡介:在本教學中,您將學習如何使用PHP PDO將資料插入MySQL表。

推薦參考影片教學:《mysql教學

下面我們就結合簡單的範例來跟大家介紹。

tasks資料表內容如下:

tasks-table (1).png

我們要將資料插入表中,可以依照下列步驟操作:

透過建立PDO物件的新實例連接到MySQL資料庫。

建構一個MySQL INSERT語句。

呼叫exec()  PDO物件的方法。

PHP MySQL插入資料範例:在表示例中插入一個新行

<?php
 
class InsertDataDemo {
 
    const DB_HOST = &#39;localhost&#39;;
    const DB_NAME = &#39;classicmodels&#39;;
    const DB_USER = &#39;root&#39;;
    const DB_PASSWORD = &#39;&#39;;
 
    private $pdo = null;
 
    /**
     * Open the database connection
     */
    public function __construct() {
        // open database connection
        $conStr = sprintf("mysql:host=%s;dbname=%s", self::DB_HOST, self::DB_NAME);
        try {
            $this->pdo = new PDO($conStr, self::DB_USER, self::DB_PASSWORD);
        } catch (PDOException $pe) {
            die($pe->getMessage());
        }
    }
//...

以下範例說明如何在tasks表中插入新行。

/**
     * Insert a row into a table
     * @return
     */
    public function insert() {
        $sql = "INSERT INTO tasks (
                      subject,
                      description,
                      start_date,
                      end_date
                  )
                  VALUES (
                      &#39;Learn PHP MySQL Insert Dat&#39;,
                      &#39;PHP MySQL Insert data into a table&#39;,
                      &#39;2013-01-01&#39;,
                      &#39;2013-01-01&#39;
                  )";
 
        return $this->pdo->exec($sql);
    }

定義類別InsertDataDemo,該建構子建立資料庫連接,並使用析構函數來關閉資料庫連接。

在InsertDataDemo類別中,我們定義了一個insert方法,它呼叫exec()  PDO物件的方法來執行INSERT語句。

以下語句建立InsertDataDemo類別的實例,並呼叫insert()  方法以將新行插入到tasks表中。

$obj = new InsertDataDemo();
$obj->insert();

讓我們查詢tasks表中的資料:

SELECT *
  FROM tasks;

PHP MySQL:將資料插入表中

#PHP MySQL:使用預處理語句範例插入單行

#要動態且安全地將值從PHP傳遞到SQL語句,可以使用PDO預處理語句。

首先,使用帶有命名佔位符的MySQL語句,如下所示:

$sql = &#39;INSERT INTO tasks (
                      subject,
                      description,
                      start_date,
                      end_date
                  )
                  VALUES (
                      :subject,
                      :description,
                      :start_date,
                      :end_date
                  );&#39;;

:subject,:description,:startdate和:enddate稱為命名佔位符。

其次,呼叫prepare()  PDO物件的方法為執行準備SQL語句:

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

然後,呼叫execute()  方法並傳遞一個包含與命名佔位符對應的值的數組。

$q->execute($task)

把它們放在一起。

/**
     * Insert a new task into the tasks table
     * @param string $subject
     * @param string $description
     * @param string $startDate
     * @param string $endDate
     * @return mixed returns false on failure 
     */
    function insertSingleRow($subject, $description, $startDate, $endDate) {
        $task = array(':subject' => $subject,
            ':description' => $description,
            ':start_date' => $startDate,
            ':end_date' => $endDate);
 
        $sql = &#39;INSERT INTO tasks (
                      subject,
                      description,
                      start_date,
                      end_date
                  )
                  VALUES (
                      :subject,
                      :description,
                      :start_date,
                      :end_date
                  );&#39;;
 
        $q = $this->pdo->prepare($sql);
 
        return $q->execute($task);
    }

現在我們可以將任務的資料傳遞給insertSingleRow()方法:

$obj->insertSingleRow(&#39;MySQL PHP Insert Tutorial&#39;,
                          &#39;MySQL PHP Insert using prepared statement&#39;,
                          &#39;2013-01-01&#39;,
                          &#39;2013-01-02&#39;);

檢查tasks表:

PHP MySQL:將資料插入表中

PHP MySQL在表格範例中插入多行

有兩種方法可以在表格中插入多行:

insertSingleRow()  多次執行此方法。

建構一個INSERT插入多行並執行它的MySQL 語句。

本篇文章就是關於PHP PDO預處理語句將資料插入MySQL表的具體方法介紹,希望對需要的朋友有幫助。

以上是PHP MySQL:將資料插入表中的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn