Reputation: 45
I want to do a query to my database if there are existing users of the same name. then I want to send a "return false". but I get only one felmeddalnde right now.
Warning: mysql_num_rows () Expects Parameter 1 to be resource, boolean
function DoInsertNewUser($name, $password) {
var_dump($name);
var_dump("inne i databasen");
//tar kontakt med databasen
$DBConnection = new DBConnection();
$DBConnection -> Connect();
$result = mysql_query("SELECT m_username FROM user WHERE m_username ='$name'");
$number_of_rows = mysql_num_rows($result);
var_dump($number_of_rows);
if ($number_of_rows > 1) {
var_dump('Användarnamnet finns redan');
}
else
{
//ställer en sql-fråga.
$sql = "INSERT INTO `user`(`m_username`,`m_password`) VALUES (?,?)";
$stmt = $DBConnection -> prepare($sql);
$stmt -> bind_param("ss", $name, $password);
if ($stmt === FALSE) {
return false;
}
$stmt -> execute();
// ger resultet.
while ($stmt -> fetch()) {
$stmt -> close();
return true;
}
$stmt -> close();
return false;
}
}
Upvotes: 0
Views: 160
Reputation: 11130
you can just count the number of users that have that username.
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Not connected : ' . mysql_error());
}
$db_selected = mysql_select_db('db_name', $link);
if (!$db_selected) {
die ('Can\'t use db_name : ' . mysql_error());
}
$result = mysql_query("SELECT COUNT(*) AS count FROM user WHERE m_username ='".$name."'", $link) or die(mysql_error());
$count = mysql_fetch_assoc($result)['count'];
update localhost, mysql_user, mysql_password and db_name as required.
Upvotes: 2
Reputation: 246
Replace
$result = mysql_query("SELECT m_username FROM user WHERE m_username ='$name'");
With
$result = mysql_query("SELECT m_username FROM user WHERE m_username ='$name'") or die(mysql_error());
Upvotes: 1