Axios是一個現代化的HTTP請求庫,可以用于瀏覽器和Node.js環境。在前端開發中,Axios通常用于與后臺API進行交互。
而與后臺的數據處理和存儲通常使用PHP和MySQL。在這篇文章中,我們將討論如何使用Axios來與PHP和MySQL進行交互。
首先,讓我們考慮一個簡單的例子。假設我們有一個“用戶”表,其中包含每個用戶的姓名和電子郵件地址。我們可以使用Axios來向服務器請求用戶數據:
axios.get('/api/users') .then(response =>{ console.log(response.data) }) .catch(error =>{ console.log(error) })在此示例中,我們使用Axios發送一個GET請求到“/api/users”端點。服務器將響應一個JSON對象,其中包含用戶數據。我們將這些數據日志記錄在控制臺中。 接下來,我們需要編寫服務器端PHP代碼來處理此請求。假設我們使用了Slim框架和PDO擴展來處理HTTP請求和數據庫事務。在這種情況下,我們可以編寫一個簡單的路由處理程序:
$app->get('/api/users', function ($request, $response, $args) { $db = new PDO("mysql:host=localhost;dbname=myapp", "username", "password"); $stmt = $db->query("SELECT * FROM users"); $users = $stmt->fetchAll(PDO::FETCH_ASSOC); return $response->withJson($users); });在此示例中,我們使用PDO擴展連接到名為“myapp”的MySQL數據庫。然后,我們在數據庫中選擇所有用戶,將結果轉換為關聯數組,并使用Slim響應對象返回JSON響應。 現在,我們可以使用Axios將數據發送到服務器,并將其存儲在數據庫中。為了簡單起見,我們將使用POST請求來創建新用戶:
axios.post('/api/users', { name: 'John Doe', email: 'jdoe@example.com' }) .then(response =>{ console.log(response.data) }) .catch(error =>{ console.log(error) })在此示例中,我們使用Axios發送一個包含用戶名和電子郵件地址的POST請求到“/api/users”端點。服務器將響應一個JSON對象,其中包含新用戶的ID。我們將這些數據日志記錄在控制臺中。 然后,我們需要編寫服務器端PHP代碼來處理此請求。在這種情況下,我們需要解析POST數據,并將其插入數據庫中:
$app->post('/api/users', function ($request, $response, $args) { $data = $request->getParsedBody(); $name = $data['name']; $email = $data['email']; $db = new PDO("mysql:host=localhost;dbname=myapp", "username", "password"); $stmt = $db->prepare("INSERT INTO users (name, email) VALUES (:name, :email)"); $stmt->bindParam(':name', $name); $stmt->bindParam(':email', $email); $stmt->execute(); $user_id = $db->lastInsertId(); return $response->withJson(['user_id' =>$user_id]); });在此示例中,我們使用Slim提供的$request->getParsedBody()方法解析POST數據,并將其插入MySQL數據庫中。然后,我們使用PDO提供的lastInsertId()方法獲取新用戶的ID,并將其作為響應返回。 在這篇文章中,我們討論了如何使用Axios與PHP和MySQL進行交互。我們展示了如何使用GET和POST請求來從服務器獲取和存儲數據,以及如何在服務器端使用Slim和PDO處理HTTP請求和數據庫事務。