PHP警告有帮助吗?

时间:2009-10-31 17:08:27

标签: php mysqli

我一直收到下面列出的以下错误,我想知道如何更正此错误。

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');
?>

4 个答案:

答案 0 :(得分:6)

错误信息很明确:你没有任何参数调用mysqli_close,而函数需要一个。

根据mysqli_close文档,您必须提供mysqli链接作为其参数。

答案 1 :(得分:2)

调用mysqli_close($ mysqli);

答案 2 :(得分:1)

使用$ mysqli-&gt; close();或者mysqli_close($ mysqli);

答案 3 :(得分:-1)

我是新手,但我终于能够通过移动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);
    } 

    ?>

``