首頁 > 後端開發 > php教程 > 準備好的語句可以參數化 SQL 中的表名嗎?

準備好的語句可以參數化 SQL 中的表名嗎?

Barbara Streisand
發布: 2024-12-24 21:17:37
原創
308 人瀏覽過

Can Prepared Statements Parameterize Table Names in SQL?

參數化語句可以處理表格名稱嗎?

您在嘗試在準備好的語句中參數化表名稱時遇到了問題。分隔旨在防止 SQL 注入的變數會導致錯誤。

您提供的程式碼包含函數 insertRow,該函數嘗試將新表名綁定為問號語句。

不幸的是,在準備好的語句中參數化表名是不可能的。準備好的語句僅允許將參數綁定到 SQL 語句的「值」元素。表名不是運行時值,會改變語句的有效性,可能會改變其意義。

即使像 PDO 這樣的資料庫介面允許在任何地方進行佔位符替換,表佔位符的值也將是包含在SQL,導致無效的 SQL。

為了防止 SQL 注入,必須使用表白名單並根據此清單檢查使用者輸入。您的程式碼應類似以下內容:

以上是準備好的語句可以參數化 SQL 中的表名嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板