Fehler: function bind_param() on a non-object

anderes94

Grünschnabel
Wenn ich die php datei aufrufe kommt immer dieser Fehler:
PHP:
Fatal error: Call to a member function bind_param() on a non-object in E:\xampp\htdocs\login\register_.php on line 43

Das hier ist der Code:
PHP:
$db = new mysqli('localhost','login','','login');
$sql = '
		INSERT INTO
					user
					(username, pass, email, ip, date)
		VALUES
					(?, ?, ?, ?, NOW())';
					
$stmt = $db->prepare($sql);
$stmt->bind_param('sssi', $_POST['username'], $_POST['pass'], $_POST['email'], $user_ip);

if(!$stmt->execute()) {
	if(strpos($db->error, 'Duplicate') !== false) {
		$error_msg = "Der Benutzername oder die Email wurde bereits verwendet.";
	} else {
		$error_msg = "Es ist ein Fehler aufgetreten bitte Kontaktieren sie den Admin.";
	}
	return;
}
echo $db->error;

$sql->close();

die zeile 43 ist diese:
PHP:
$stmt->bind_param('sssi', $_POST['username'], $_POST['pass'], $_POST['email'], $user_ip);

ich such jetzt schon ne halbe stunde finde aber den fehler einfach nicht. bitte helt mir.

Hier auch noch ein Screenshot von der DB:
xow83v9d9khy.png

(wenn optimierungsvorschläge für die db kommen nehm ich die auch gerne an ;))
 
ersetz mal die zeile 42 durch:

PHP:
if(!$stmt = $db->prepare($sql)) { 
  foreach(array('get_client_info','get_server_info') as $m) { 
    echo $m, ': ', $db->$m(), "<br />\n"; 
  }   
  var_dump($sql); 
   
  exit($db->error); 
}

und die zeile 43 durch:

PHP:
if(!$stmt->bind_param('sssi', $_POST['username'], $_POST['pass'], $_POST['email'], $user_ip)) { 
           die ($db->error);
}

falls du dann noch nicht weiter weisst, poste mal hier die Browserausgabe...

Falls es nun Funktionieren sollte, dann:

PHP:
  foreach(array('get_client_info','get_server_info') as $m) { 
    echo $m, ': ', $db->$m(), "<br />\n"; 
  }   
  var_dump($sql); 
   
  exit($db->error);

entfernen und durch:


PHP:
 die ($db->error);

ersetzen...
 
Zuletzt bearbeitet:
Zurück