Код: Выделить всё
$sql = "UPDATE `-notes` SET name='$name', content='$content', tags='$tags' WHERE unique_hak='$unique'";
Теперь я прочитал подготовленные утверждения (мне нравится эта статья с веб-сайта Beavers) и у меня есть ajax-prep-stmt.php с
Код: Выделить всё
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
set_exception_handler(function($e) {
error_log($e->getMessage());
exit('Error connecting to database'); // For user
});
$mysqli = new mysqli("localhost","","","");
$mysqli->set_charset("utf8mb4");
$stmt = $mysqli->prepare("UPDATE `-notes` SET name=?, content=?, tags=? WHERE unique_hak=?");
$stmt->bind_param("ssss", $name, $content, $tags, $unique);
$stmt->execute();
//fetching result would go here, but will be covered later
$result = $stmt->get_result();
$stmt->close();
Вопрос: $stmt->close(), похоже, «закрывает» (подготовленный) оператор.
Мне все равно придется закрывать соединение с базой данных? Возможно, я путаю «объекты» с «процедурами». В новом коде нет $conn = mysqli_connect, так что не думайте, что mysqli_close($conn); мне больше не нужен. Однако мне нужно быть уверенным, потому что раньше у меня были проблемы с тем, что я не всегда закрывал соединения.
Подробнее здесь: https://stackoverflow.com/questions/798 ... statements
Мобильная версия