簡單的問題 - 我不明白,如果我要運行WordPress的這種類型的查詢:當我只是匹配表列時,是否需要在Wordpress中運行準備好的查詢?
SELECT * FROM tableA WHERE variable1 = $var1
...然後我需要使用「準備」,像這樣:
$my_query = $wpdb->get_results($wpdb->prepare("SELECT * FROM tableA
WHERE variable1 = %s", $var1));
然而,當我想要做這種類型的查詢,而不是:
- 連接兩個表的列
- 並沒有使用可變
這樣的:
SELECT * FROM tableA, tableB WHERE tableA.some_col = tableB.some_other_col
... '應該' 我:
- 仍然使用某種形式的 '準備' 語句,以防止SQL注入
或者是它可以做到以下幾點:
$my_query = $wpdb->get_results("SELECT * FROM tableA, tableB WHERE tableB.some_col = tableB.some_other_col");
如果你沒有任何參數傳遞,則不需要使用準備好的語句,因爲沒有機會,用戶輸入將觸動您的數據庫的討論。 – WillardSolutions
這不僅僅是一個安全問題,而是一個代碼風格問題。正如下面的答案所指出的那樣,你不需要它,但是*可能會有一些代碼風格的優點來持續使用它。就我個人而言,當我傳入參數時,我只使用'$ wpdb-> prepare()',但這是一個代碼風格決定。 –