是的,Laravel 的 SQL 預處理功能可以兼容多個數據庫。Laravel 的數據庫抽象層(DBAL)支持多種數據庫連接,包括 MySQL、PostgreSQL、SQLite、SQL Server 等。預處理語句(Prepared Statements)是一種防止 SQL 注入攻擊的方法,它可以確保用戶輸入的數據不會被解釋為 SQL 代碼的一部分。
要在 Laravel 中使用預處理語句,你可以使用查詢構建器(Query Builder)或 Eloquent ORM。以下是一些示例:
use Illuminate\Support\Facades\DB;
// 創建一個預處理語句
$statement = DB::prepare('SELECT * FROM users WHERE email = ? AND password = ?');
// 綁定參數
$statement->bindParam(1, $email);
$statement->bindParam(2, $password);
// 執行預處理語句
$statement->execute();
// 獲取查詢結果
$results = $statement->fetchAll();
use App\Models\User;
// 創建一個預處理語句
$statement = User::query()->where('email', $email)->where('password', $password)->toSql();
// 綁定參數
$statement = DB::prepare($statement);
$statement->bindParam(1, $email);
$statement->bindParam(2, $password);
// 執行預處理語句
$statement->execute();
// 獲取查詢結果
$results = $statement->get();
在這些示例中,我們使用了預處理語句來查詢數據庫。你可以根據需要替換為其他數據庫操作。Laravel 的 DBAL 會自動處理不同數據庫之間的差異,因此你可以放心地在多個數據庫中使用預處理語句。