Προειδοποίηση: mysqli_close (): Δεν ήταν δυνατή η ανάκτηση mysqli

ψήφοι
-2

Παίρνω αυτό το σφάλμα:

Warning: mysqli_close(): Couldn't fetch mysqli in sendinvoice.php on line 54

Εδώ είναι ο κωδικός μου:

    <?php
include 'dbconfig.php';
ob_start();

$taxcb = $_POST['taxcb'];
$taxrate = $_POST['taxrate'];
$bcctocb = $_POST['bcctocb'];
$bcctotxt = $_POST['bcctotxt'];
$duedate = $_POST['duedate'];
$issuedate = $_POST['issuedate'];
$additemscb = $_POST['additemscb'];
$additemname = $_POST['additemname'];
$additemprice = $_POST['additemprice'];
$q = $_POST['rowid'];

$sql=SELECT * FROM clients WHERE id = '.$q.';

$result = mysqli_query($conn,$sql);

while($row = mysqli_fetch_array($result)) {


$to = $row[email];
$subject = Invoice Test  . date('m/d/Y h:i:s a', time());
include 'invoice.html';
$message = ob_get_clean();

// Always set content-type when sending HTML email
$headers = MIME-Version: 1.0 . \r\n;
$headers .= Content-type:text/html;charset=UTF-8 . \r\n;

// More headers
$headers .= 'From: <billing@example.com>' . \r\n;
if ($bcctocb == y){
$headers .= 'BCC: ' . $bcctotxt . \r\n;
}

mail($to,$subject,$message,$headers);

$sql = UPDATE clients SET last_billed=' . date(Y-m-d H:i:s) . ' WHERE id= . $q;

if ($conn->query($sql) === TRUE) {
    echo New record created successfully;
} else {
    echo Error:  . $sql . <br> . $conn->error;
}

$conn->close();

}

mysqli_close($conn);

?>

Το μόνο που θέλω είναι να ενημερώσετε την είσοδο MySQL αν όλα ήταν επιτυχής. Υποψιάζομαι ότι είναι ένα λάθος με την κατοχή δύο MySQL πράγματα που συμβαίνουν ταυτόχρονα, είναι ένας πιο αποτελεσματικός τρόπος για να τα συνδυάσετε εκεί;

Δημοσιεύθηκε 20/10/2018 στις 12:34
πηγή χρήστη
Σε άλλες γλώσσες...                            


2 απαντήσεις

ψήφοι
0

Υποθέτω ότι είστε μπέρδεμα με mysqliαντικειμενοστραφή έκδοση με διαδικαστικά έκδοση στυλ, απλά να κολλήσει με ένα και σας καλώ να χρησιμοποιήσετε OOP.

Σε στυλ OOP:

/* do connection */
$mysqli = new mysqli("localhost", "my_user", "my_password", "world");

/* close connection */
$mysqli->close();

Σε Διαδικαστικές στυλ:

/* do connection */
$link = mysqli_connect("localhost", "my_user", "my_password", "world");


/* close connection */
mysqli_close($link);

Δείτε παραδείγματα http://php.net/manual/en/mysqli.affected-rows.php

Απαντήθηκε 20/10/2018 στις 12:43
πηγή χρήστη

ψήφοι
0

Είναι δύσκολο να πω με την εσοχή, αλλά σε ορισμένες περιπτώσεις θα κλείσει τη σύνδεση δύο φορές ...

$conn->close();

}

mysqli_close($conn);

Αυτά τα δύο θα κλείσετε τη σύνδεση, έτσι ώστε το δεύτερο θα αποτύχει. Μάλλον πιο εύκολο να αφαιρέσετε το $conn->close();όπως θα πέσει πάντα μέσα στο δεύτερο κλείσιμο.

Απαντήθηκε 20/10/2018 στις 12:38
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more