Я продолжаю получать следующую ошибку, указанную ниже, и мне было интересно, как мне исправить эту ошибку.
Warning: mysqli_close() expects exactly 1 parameter, 0 given in
Вот приведенный ниже код.
<?php require_once ('./mysqli_connect.php'); // Connect to the db. function make_list ($parent) { global $tasks; echo '<ol>'; foreach ($parent as $task_id => $todo) { echo "<li>$todo"; if (isset($tasks[$task_id])) { make_list($tasks[$task_id]); } echo '</li>'; } // End of FOREACH loop. // Close the ordered list: echo '</ol>'; } // End of make_list() function. $mysqli = new mysqli("localhost", "root", "", "sitename"); $dbc = mysqli_query($mysqli,"SELECT task_id, parent_id, task FROM tasks WHERE date_completed='0000-00-00 00:00:00' ORDER BY parent_id, date_added ASC"); if (!$dbc) { // There was an error...do something about it here... print mysqli_error(); } $tasks = array(); while (list($task_id, $parent_id, $task) = mysqli_fetch_array($dbc, MYSQLI_NUM)) { // Add to the array: $tasks[$parent_id][$task_id] = $task; } make_list($tasks[0]); mysqli_close(); // close the connection // Include the html footer include('./includes/footer.html'); ?>
в<?php require_once ('./mysqli_connect.php'); // Connect to the db. function make_list ($parent) { global $tasks; echo '<ol>'; foreach ($parent as $task_id => $todo) { echo "<li>$todo"; if (isset($tasks[$task_id])) { make_list($tasks[$task_id]); } echo '</li>'; } // End of FOREACH loop. // Close the ordered list: echo '</ol>'; } // End of make_list() function. $mysqli = new mysqli("localhost", "root", "", "sitename"); $dbc = mysqli_query($mysqli,"SELECT task_id, parent_id, task FROM tasks WHERE date_completed='0000-00-00 00:00:00' ORDER BY parent_id, date_added ASC"); if (!$dbc) { // There was an error...do something about it here... print mysqli_error(); } $tasks = array(); while (list($task_id, $parent_id, $task) = mysqli_fetch_array($dbc, MYSQLI_NUM)) { // Add to the array: $tasks[$parent_id][$task_id] = $task; } make_list($tasks[0]); mysqli_close(); // close the connection // Include the html footer include('./includes/footer.html'); ?>
Сообщение об ошибке ясно: вы вызываете mysqli_close без какого-либо аргумента, а функция ожидает его.
Согласно документации mysqli_close, вы должны указать ссылку mysqli в качестве аргумента.
Вызвать mysqli_close ($ mysqli);
Используйте $ mysqli-> close (); или mysqli_close ($ mysqli);
Я новичок, но я, наконец, смог решить эту проблему, переместив местоположение mysqli_close (). Я получил это сразу после последнего}, но затем я переместил его прямо перед этим, и это сработало.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Make Me Elvis - Send Email</title> <link rel="stylesheet" type="text/css" href="style.css" /> </head> <body> <?php $from = 'elmer@makemeelvis.com'; $subject = $_POST['subject']; $text = $_POST['elvismail']; if (empty($subject) && empty($text)){ echo 'Both, the subject and the email field have been left empty';} if (empty($subject) && !empty($text)){ echo 'The subject field is empty';} if (!empty($subject)&& empty($text)){ echo 'The email field is empty'; } if (!empty($subject) && !empty ($text)){ $dbc = mysqli_connect('servername', 'username', 'password', 'dbname') or die('Error connecting to MySQL server.'); $query = "SELECT * FROM email_list"; $result = mysqli_query($dbc, $query) or die('Error querying database.'); while ($row = mysqli_fetch_array($result)){ $to = $row['email']; $first_name = $row['first_name']; $last_name = $row['last_name']; $msg = "Dear $first_name $last_name,\n $text"; mail($to, $subject, $msg, 'From:' . $from); echo 'Email sent to: ' . $to . '<br />'; } mysqli_close($dbc); } ?>
“