Ok, então na primeira função você está tentando substituir
return mysql_result(mysql_query("SELECT `user_id` FROM `users` WHERE `username` = '$username'"), 0, 'user_id');
Vamos primeiro deixar claro o que isso faz:
- especificar consulta
- busque o resultado
- obter 0. linha ("1º" em inglês)
- obter coluna
user_id
Agora faça isso passo a passo com
mysqli_
://specify query
$result = mysqli_query(connect(),"SELECT `user_id` FROM `users` WHERE `username` = '$username'");
//fetch result
$row = mysqli_fetch_assoc($result);
//get column
return $row['user_id'];
Você não precisa especificar a linha como
fetch_assoc
retorna apenas um. Agora para a segunda função
return (mysql_result(mysql_query("SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'"), 0) ==1) ? $user_id : FALSE;
- especificar consulta
- buscar resultado
- obter 0. linha
- se for igual a 1:retorne
user_id
, caso contrárioFALSE
Agora com
mysqli_
://specify query
$result = mysqli_query(connect(),"SELECT COUNT(`user_id`) FROM `users` WHERE `username` = '$username' AND `password` = '$password'");
//fetch result
$row = mysqli_fetch_row($result);
//if first returned column is equal to 1 return $user_id
//otherwise FALSE
return ($row[0]==1) ? $user_id : FALSE;
Mas espere - por que eu usei
mysqli_fetch_row
aqui enquanto mysqli_fetch_assoc
foi usado acima? RTM;) O que aprendemos hoje? Só porque você pode escrever seu código o mais curto possível não significa que você deveria. Se o código original tivesse sido dividido um pouco mais, a transição para o MySQLi deveria ter sido bem fácil, pois você poderia facilmente depurar partes menores em vez de uma expressão complexa.