PDO 準備語句- 在參數名稱中使用冒號
問題
在PDO 中,一些開發人員在named 中的參數名稱前使用冒號(:)參數,而其他人則省略它們。雖然這兩種方法都有效,但對於使用冒號的重要性存在混淆。
TL;DR
冒號在SQL 字串中是必需,但可選 執行語句或綁定時
可選
執行語句或綁定時
說明
參數名稱前必須使用冒號(:)防止列名和參數名稱之間出現歧義。示例:INSERT INTO Table1 (column1, column2) VALUES (:column1, :column2)
可選
。如果省略冒號,PHP 將自動新增冒號。範例: $insertRecord->execute(['column1' => $column1, 'column2' => $column2]);
PHP 原始碼分析
- An對PHP 原始碼的檢查揭示了以下行為:
- 中pdo_sql_parser.c,只有參數名稱的第一個字元可以是冒號。
在pdo_stmt.c中,如果bindParam()或execute()中的參數名稱不以':'開頭,則為冒號會自動新增。
最佳實踐儘管使用冒號在技術上並不可行必需,建議使用它,以確保一致性、可讀性以及在 IDE 中易於搜索。
以上是PDO 命名參數中的冒號很重要嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!