Uncaught Error: mysqli object is already closed was tun?
Ich habe diesen code auf meiner Strato webside bekommen.
Hier den code
//Code for Registration
if(isset($_POST['signup']))
{
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$result = $con->query("select id from users where fname='$fname'");
$row_count = $result->num_rows;
if($row_count>3)
{
echo "<script>alert('Artikel befindet sich schon 3 mal in der Truhe');</script>";
} else{
$msg=mysqli_query($con,"insert into users(fname,lname) values('$fname','$lname')");
}
if($msg)
{
echo "<script>alert('Erfolgreich Eingetragen');</script>";
}
}
LG
Noch mal der ganze error
Fatal error: Uncaught Error: mysqli object is already closed in /mnt/web016/e0/16/511052116/htdocs/cgi-bin/Inventar/index.php:36 Stack trace: #0 /mnt/web016/e0/16/511052116/htdocs/cgi-bin/Inventar/index.php(36): mysqli->query() #1 {main} thrown in /mnt/web016/e0/16/511052116/htdocs/cgi-bin/Inventar/index.php on line 36
Ganzer Code:
<?php session_start();
require_once('dbconnection.php');
error_reporting(E_ALL);
ini_set('display_errors', true);
ini_set('mysql.trace_mode', true);
//Code for Registration
if(isset($_POST['signup']))
{
$fname=$_POST['fname'];
$lname=$_POST['lname'];
$msg = $con->query("INSERT INTO users(fname,lname) VALUES('$fname','$lname')");
$row_count = $result->num_rows;
if($row_count>3)
{
echo "<script>alert('Artikel befindet sich schon 3 mal in der Truhe');</script>";
} else{
$msg=mysqli_query($con,"insert into users(fname,lname) values('$fname','$lname')");
}
if($msg)
{
echo "<script>alert('Erfolgreich Eingetragen');</script>";
}
}?>
2 Antworten
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
PHP
Lies doch einfach mal die Fehlermeldung (dazu ist sie da) und vergleiche mit deinem gesamten Skript. Du wirst die Verbindung zur Datenbank schon wieder geschlossen haben. In Zeile 36 versuchst du aber dennoch, wieder Anfragen an diese zu stellen.
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
PHP
Du mischt schon wieder die Klassen-Schreibweise mit der prozeduralen! Schau dir doch einfach mal den Code an und versuche ihn zu verstehen.
So muss es heißen:
$msg = $con->query("INSERT INTO users(fname,lname) VALUES('$fname','$lname')");
Woher ich das weiß:Berufserfahrung – Entwickle seit > 20 Jahren Anwendungen mit PHP.
Danke..
Mir wurde jedoch wieder die gleiche Meldung angezeigt.
@Babelfish
Ich habe dass $con in dbconnection.php initialisiert und ich werde auch dass prepared System wieder anwenden.
Ich konnte in meinen script aber keine stelle finden wo ich die verbindung geschlossen habe.