PHP和SQL是現代系統架構中不可缺少的兩個元素,它們可以協同工作以達到數據存儲、管理和使用的目的。當需要導入大量的數據到SQL時,SQL提供了多種導入的方式:手動、CSV文件導入、phpMyAdmin等。而通過PHP代碼實現導入也是一種常見的方式,本文將著重介紹如何使用PHP將數據導入SQL。
首先需要準備好要導入的數據,數據來源如下圖所示:
<?php $data = [["name" => "John", "age" => 35, "email" => "john@example.com"], ["name" => "Mary", "age" => 28, "email" => "mary@example.com"], ["name" => "Lisa", "age" => 42, "email" => "lisa@example.com"]]; echo var_export($data, true); ?>
在本文中,我們將使用PDO庫對MySQL數據庫進行操作。首先需要連接到數據庫:
<?php $host = 'localhost'; $dbname = 'test_db'; $username = 'root'; $password = ''; try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Connected successfully"; } catch(PDOException $e) { echo "Connection failed: " . $e->getMessage(); } ?>
連接成功后,我們需要為數據創建一個表。在本文的示例中,表名為users,包含3列:name、age、email。創建表的代碼如下:
<?php try { $sql = "CREATE TABLE users ( name VARCHAR(30) NOT NULL, age INT(3) NOT NULL, email VARCHAR(50) NOT NULL )"; $pdo->exec($sql); echo "Table created successfully"; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); } ?>
接下來,我們需要將數據插入到表中。使用PDO的prepare語句來預處理SQL語句,使用bindParam方法將變量綁定到預處理語句中,最后使用execute方法執行預處理語句。插入數據的代碼如下:
<?php try { $stmt = $pdo->prepare("INSERT INTO users (name, age, email) VALUES (:name, :age, :email)"); foreach ($data as $row) { $stmt->bindParam(':name', $row['name']); $stmt->bindParam(':age', $row['age']); $stmt->bindParam(':email', $row['email']); $stmt->execute(); } echo "Data inserted successfully"; } catch(PDOException $e) { echo "Error: " . $e->getMessage(); } ?>
如果你需要導入CSV文件,也可以通過PHP實現。PHP中提供了fgetcsv和explode函數來讀取CSV文件中的每一行和每一列數據,將CSV文件中的數據插入到MySQL數據庫的代碼如下:
<?php $file = fopen('data.csv', 'r'); $stmt = $pdo->prepare("INSERT INTO users (name, age, email) VALUES (:name, :age, :email)"); while (($data = fgetcsv($file)) !== FALSE) { $row = explode(',', $data); $stmt->bindParam(':name', $row[0]); $stmt->bindParam(':age', $row[1]); $stmt->bindParam(':email', $row[2]); $stmt->execute(); } fclose($file); echo "Data imported successfully"; ?>
總結一下,本文介紹了如何使用PHP將數據導入到MySQL數據庫。通過PDO庫連接到數據庫、創建表、插入數據,最后介紹了如何將CSV文件中的數據導入到數據庫中。當然,還有其他的方法可以將數據導入到SQL,你可以根據自己的需求選擇適合自己的方法。