Performance: SQL injection prevention
This concept affects the security and reliability of database queries, indirectly impacting page load by preventing costly errors and server crashes.
$safe_query = $wpdb->prepare("SELECT * FROM wp_users WHERE user_login = %s", $_GET['user']); $results = $wpdb->get_results($safe_query);
$unsafe_query = "SELECT * FROM wp_users WHERE user_login = '" . $_GET['user'] . "'"; $results = $wpdb->get_results($unsafe_query);
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Unsafe direct query with user input | N/A | N/A | N/A | [X] Bad |
| Prepared statement with $wpdb->prepare | N/A | N/A | N/A | [OK] Good |
$wpdb->prepare() in WordPress?$user_id = 5;
$query = $wpdb->prepare('SELECT * FROM wp_users WHERE ID = %d', $user_id);
echo $query;$email = $_POST['email'];
$query = $wpdb->prepare('SELECT * FROM wp_users WHERE user_email = %d', $email);$wpdb->prepare(). Which of the following is the best way to write this query?Pass the test and this pattern moves unknown