insertar - Compruebe si ya hay un usuario y luego inserte en la base de datos php
registrar datos en mysql con php (1)
Ha mezclado el Procedural style
y el Object oriented style
para ejecutar la consulta.
Cuando usas,
1) Estilo de procedimiento
$result = mysqli_query($mysqli, "Your Query");
usa esto, $row_count = mysqli_num_rows($result);
2) Estilo orientado a objetos
$result = $mysqli->query("Your Query");
Use esto, $row_count = $result->num_rows;
Por lo tanto, de acuerdo con su código, está utilizando el estilo orientado a objetos. Entonces, necesitas cambiar
$result = mysqli_query($mysqli,"SELECT username FROM users WHERE username = ''$username''");
a
$result = $mysqli->query("SELECT username FROM users WHERE username = ''$username''");
Código editado.
$email = $_POST[''email''];
$password= password_hash($_POST[''password''], PASSWORD_BCRYPT, $options);
$username= $_POST[''username''];
$result = $mysqli->query("SELECT username FROM users WHERE username = ''$username''");
$row_count = $result->num_rows;
if($row_count == 1)
{
echo ''User exists'';
}
else
{
$query = "INSERT INTO users (username, email, password) VALUES(?, ?, ?)";
$statement = $mysqli->prepare($query);
//bind parameters for markers, where (s = string, i = integer, d = double, b = blob)
$statement->bind_param(''sss'', $username, $email, $password);
if($statement->execute())
{
print ''Success! ID of last inserted record is : '' .$statement->insert_id .''<br />'';
}
else
{
die(''Error : (''. $mysqli->errno .'') ''. $mysqli->error);
}
$statement->close();
}
Para obtener más información, consulte este mysqli_num_rows vs -> num_rows
Mi código funciona, si deseo insertarlo en la base de datos, pero mi comprobación de si el usuario ya existe no funciona.
* Pensé que la idea era verificar si ya existe una fila con ese nombre de usuario, si es así no agregue ese usuario a la base de datos, sino
$email = $_POST[''email''];
$password= password_hash($_POST[''password''], PASSWORD_BCRYPT, $options);
$username= $_POST[''username''];
$result = mysqli_query($mysqli, "SELECT username FROM users WHERE username = ''$username''");
$row_count = $result->num_rows;
if($row_count == 1){
echo''User exists'';
}else{
$query = "INSERT INTO users (username, email, password) VALUES(?, ?, ?)";
$statement = $mysqli->prepare($query);
//bind parameters for markers, where (s = string, i = integer, d = double, b = blob)
$statement->bind_param(''sss'', $username, $email, $password);
if($statement->execute()){
print ''Success! ID of last inserted record is : '' .$statement->insert_id .''<br />'';
}else{
die(''Error : (''. $mysqli->errno .'') ''. $mysqli->error);
}
$statement->close();
}