Выборка из базы данных

Выполнение SQL-кода происходит через метод query().

$result = $mysqli->query('SELECT title,content FROM articles WHERE id = 10');
 
while ($article = $result->fetch_assoc()) {
    echo $article['title'];
    echo $article['content'];
}
$result->free(); // рекомендуется использовать: освобождает память MySQL (не PHP)

Не рекомендуется делать выборку со всех полей (через символ *), т.к. это может уменьшить загрузку страниц из-за выборки лишних данных.

Нельзя передавать значения напрямую из $_GET, так как злоумышленник может получить контроль над базой данных, например удалить всю таблицу.

// так делать нельзя в целях безопасности сайта
$login = $_GET['login'];
$password = $_GET['password'];

$result = $mysqli->query('SELECT id,name,login FROM users WHERE login='.$login.' AND password='.$password);

В примере выше, посетитель вместо пароля может ввести OR login='admin', и авторизуется под админом (данный вид авторизации называется «SQL-инъекция»).

Если надо передать значение из $_GET, то надо применить метод real_escape_string().

// правильный и безопасный способ передачи параметров в SQL-запрос
$login = $mysqli->real_escape_string($_GET['login']);
$password = $mysqli->real_escape_string($_GET['password']);

$result = $mysqli->query('SELECT id,name,login FROM users WHERE login="'.$login.'" AND password="'.$password.'"');

Метод real_escape_string() экранируеет символы NUL (ASCII 0), \n, \r, \, ', ", и Control-Z.