2009-10-31 101 views
0

我不斷收到下面列出的以下錯誤,我在想如何糾正這個錯誤。PHP警告幫助?

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

回答

6

該錯誤信息是明確的:你叫mysqli_close不帶任何參數,而函數需要一個。

根據mysqli_close文檔,您必須提供mysqli鏈接作爲其參數。

+0

我該怎麼辦呢? – sawu 2009-10-31 17:12:47

+0

當您連接到數據庫時,您會得到一個表示與數據庫的連接的對象。 使用過程方式,它可能如下所示: $ link = mysqli_connect(「localhost」,「user」,「passwd」,「db」); mysqli_close($ link); OO方式可能如下所示: $ mysqli = new mysqli(「localhost」,「user」,「passwd」,「db」); 和 $ mysqli-> close(); – Sylvain 2009-10-31 17:20:06

2

調用mysqli_close($ mysqli);

1

使用$ mysqli-> close();或mysqli_close($ mysqli);

-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 = '[email protected]'; 
    $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); 
    } 

    ?> 

``