Node.js作為一種伺服器端JavaScript運行環境,已經成為了一種非常受歡迎的技術。對於Node.js的開發者來說,呼叫資料庫預存程序是進行複雜資料庫查詢的有效方法。然而,與其他程式語言相比,Node.js如何正確地呼叫SQL預存程序?
本文將介紹如何使用Node.js呼叫SQL預存程序並取得結果。
在使用Node.js連接資料庫之前,需要安裝對應的Node.js資料庫驅動程式。本文以mysqljs
函式庫為例,首先需要在Node.js專案中引入這個函式庫:
var mysql = require('mysql');
在連接資料庫之前,需要先建立一個MySQL連線池。
var pool = mysql.createPool({ connectionLimit : 10, host : 'example.org', user : 'bob', password : 'secret', database : 'my_db' });
請確保將host
、user
、password
和database
替換為正確的資料庫連線資訊。連接池成功建立後,即可使用下列程式碼連接資料庫。
pool.getConnection(function(err, connection) { // 在此处处理连接错误 connection.query('SELECT * FROM customers', function(err, rows) { // 在此处处理查询结果 connection.release(); // 释放连接 }); });
在釋放連線之前,需要注意一件事情:使用MySQL預存程序時,無需釋放連線。因為預存程序會自動關閉連線。在下一個範例中,你將了解如何呼叫預存程序。
假設你有一個名為getCustomers
的預存過程,其參數清單如下:
:以零為基礎的頁面編號。
:要顯示的記錄數。
:總行數。
:總頁數。
pool.getConnection(function(err, connection) { // 在此处处理连接错误 connection.query('CALL getCustomers(?, ?, @total_rows, @total_pages)', [0, 10], function(err, rows) { if (err) throw err; // 执行第二个查询以获取返回值 connection.query('SELECT @total_rows AS total_rows, @total_pages AS total_pages', function(err, rows) { if (err) throw err; var totalRows = rows[0][0].total_rows; var totalPages = rows[1][0].total_pages; console.log('Total rows: ' + totalRows); console.log('Total pages: ' + totalPages); connection.release(); }) }); });
?來取代預存程序中的每個參數。在範例中,我們為預存程序傳遞了兩個參數:
0和
10。
@total_rows和
@total_pages是預存程序的兩個輸出參數。在第一個查詢執行完成之後,我們需要執行另一個SQL查詢來取得帶有輸出參數的值。在取得輸出參數之後,即可對這些值進行操作。
以上是如何使用Node.js呼叫SQL預存程序並取得結果的詳細內容。更多資訊請關注PHP中文網其他相關文章!