MySQL überprüft nicht, ob User bereits vorhanden ist

Hallo liebe Gemeinde,
ich arbeite gerade an einem Login Skript und möchte überprüfen, ob ein Username bereits vorhanden ist
ich wollte es so lösen:
PHP:
<?php
$db = new mysqli("localhost", "username", "passwort", "datenbanl") or die(mysql_error());
$result = $db->query("SELECT * FROM users WHERE user = '$user'");
$row = $db->num_rows($result);
if($row == 0)
{...} else { echo '<script>alert("Der Benutzername ist schon vorhanden");</script>'; }
?>
Die Verbindungsdatem sind garantiert richtig.
Der Server verhält sich folgendermaßden:
Er trägt immer wieder den User ein, egal ob er existiert oder nicht

Vielen Dank im Voraus
Sententiaregum
 
Probier mal so:
PHP:
<?php
$db = new mysqli("localhost", "username", "passwort", "datenbanl") or die(mysql_error());
$result = $db->query("SELECT * FROM users WHERE user = '$user'");
$row = $result->num_rows();
if($row == 0)
{...} else { echo '<script>alert("Der Benutzername ist schon vorhanden");</script>'; }

Außerdem ist SELECT * hier so ziemlich das Sinnloseste was es gibt. SELECT id reicht doch völlig (ist eigentlich sogar noch zu viel, geht ja nur darum, OB überhaupt was zurück kommt)
 
Hallo, danke für die Antwort.
Nun gibt er mir folgendes aus:

Fatal Error: Call to undefined method mysqli_result::num_rows() in dateipfad

Lg Sententiaregum
 
Weil num_rows keine Methode sondern eine Member-Variable des Resultset ist. Folglich kannst du es so notieren:

PHP:
if( !$result || $result->num_rows == 0 )
 
Ups :p
Meinte ich ja. Was du jedenfalls falsch gemacht hast, dass du 1.) auch von ner Methode ausgegangen bist und 2.) vom mysqli-basisobjekt anstatt vom Result-objekt ausgegangen bist.
 
Zurück