Я давно использую старый API mysql в PHP и хочу начать использовать mysqli как для скорости, так и для безопасности с новым проектом, над которым я работаю. Я просмотрел руководство и прочитал несколько руководств, но нашел много противоречивой и несколько запутанной информации о том, как выполнять подготовленные операторы в mysql.
Есть ли в этом коде что-то, чего там не должно быть, и есть ли что-то, чего не хватает? Кроме того, это самый простой способ сделать что-то простое вроде этого (кажется несколько сложным для такой простой задачи)?
Процедурный:
// build prepared statement
$query = mysqli_prepare($link, "SELECT email FROM users WHERE id = ?");
// bind parameters to statement
mysqli_stmt_bind_param($query, 's', $_GET['id']);
// execute statement
mysqli_stmt_execute($query);
// bind the variables to the result
mysqli_stmt_bind_result($query, $email);
// print the results
while (mysqli_stmt_fetch($query)) {
echo $email;
}
// close the statement
mysqli_stmt_close($query);
// close connection
mysqli_close($link);
Объектно-ориентированный:
// build prepared statement
$query = $link->prepare("SELECT email FROM users WHERE id = ?");
// bind parameters to statement
$query->bind_param('s', $_GET['id']);
// execute statement
$query->execute();
// bind the variables to the result
$query->bind_result($email);
// print the results
while ($query->fetch()) {
echo $email;
}
// close the statement
$query->close();
// close connection
$link->close();
PDOStatement
имеет очень понятный и последовательный интерфейс. - person Phil   schedule 30.04.2011