Я давно использую старый API MySQL в PHP и хочу начать использовать MySQL для скорости и безопасности в новом проекте, над которым я работаю. Я просмотрел руководство и прочитал несколько учебных пособий, но нахожу много противоречивой и несколько запутанной информации о том, как делать подготовленные операторы в 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();