Новый для PHP/MySQL, я пытался скопировать случайную строку проверки из нескольких других сообщений и не имел большой удачи, чтобы какой-либо вход был полезен.
Цель сделать случайный 8-значный вывод, который не находится в БД.
function generateQuickPin($length = 8) {
define ("DB_HOST", "localhost"); //Databse Host.
define ("DB_USER", "6eef"); //Databse User.
define ("DB_PASS", "a0b1"); //database password.
define ("DB_NAME", "timecard"); //database Name.
$db = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
$flength = 1;
$characters = '123456789';
$charactersLength = strlen($characters);
$randompin = '';
for ($i = 0; $i < $flength; $i++) {
$randompin .= $characters[rand(0, $charactersLength - 1)];
}
$length = $length - 1;
$characters = '0123456789';
$charactersLength = strlen($characters);
for ($i = 0; $i < $length; $i++) {
$randompin .= $characters[rand(0, $charactersLength - 1)];
}
$query = "SELECT * FROM 'users' WHERE 'quick_pin' = '$randompin' ";
if ($db->query($query) === TRUE) {
}else {
$randomString = 'false '.$db->error;
return $randomString;
}
if(mysqli_num_rows($result) > 0){ # in case a record with this "text" already exists, run this method again
generateQuickPin(8);
} else {
return $randomString; # otherwise return the value/store it in the object
}
}
спасибо
Вы объявляете $ result в любом месте? Если нет, замените:
if(mysqli_num_rows($result) > 0)
с
if(mysqli_num_rows($db->query($query)) > 0)