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

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

Barbara Streisand
Barbara Streisand原創
2024-12-24 21:17:37271瀏覽

Can Prepared Statements Parameterize Table Names in SQL?

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

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

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

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

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

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

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn