Итак, как говорится в заголовке, я хочу узнать, как я могу сравнить строку в базе данных SQL с строкой PHP.Как сравнить строку в базе данных SQL с переменной PHP
<!DOCTYPE html>
<html>
<head>
<title>Processing Request</title>
<link rel="Stylesheet" href="style.css" type="text/css" />
</head>
<body>
<h1>Account Creation</h1>
<h3>
<?php
$dbhost = "localhost";
$username = "root";
$password = "";
$connect = mysqli_connect("$dbhost", "$username", "$password");
$db = "accounts";
if (!$connect){
die("ERROR: Database connection failed: " . mysqli_connect_error());
}
mysqli_select_db($connect, $db);
$makeUser = $_POST["makeUser"];
$makePass = $_POST["makePass"];
$sql = "INSERT INTO accounts (username, password) VALUES ('$makeUser', '$makePass')";
if("SELECT username FROM accounts WHERE username = '$makeUser'"){
Строка кода выше, где я пытаюсь сравнить значение (из столбца «имя пользователя» в таблице «счета») в моей SQL базы данных в строку, пользователь ввел для создания учетной записи ($ makeAccount). Этот конкретный фрагмент кода должен сообщать пользователю, если пользовательское имя, которое они пытаются установить для своей учетной записи, уже было принято.
Однако каждый раз, когда я запускаю этот код (и вводим имя пользователя в форму, которую я могу визуально видеть в моей базе данных, не принимается), он по-прежнему говорит, что имя пользователя уже принято, хотя это определенно нет.
header("Location: createaccount.php?status=userTaken");
}
else{
mysqli_query($connect, $sql);
echo "Account creation was succesful!";
}
mysqli_close($connect);
?>
Click <a href="index.php">here</a> to login.
</h3>
</body>
</html>
Благодарим вас, все ответы представлены.)
P.S. Это первая программа, которую я пишу на PHP, и в первый раз я использую базу данных SQL, поэтому, пожалуйста, старайтесь держать ее простой и понятной.
P.S.S Я пробовал множество решений, все без успеха.
Что вы ожидаете от 'if' условии, что имеет какой-то запрос ? – RST
Вы не можете просто поместить SQL в оператор 'if()'. Вам нужно вызвать 'mysqli_query()' для выполнения запроса базы данных и 'mysqli_fetch_assoc()', чтобы получить ряд результатов. Это возвращает ассоциативный массив, и вы можете получить доступ к выбранным значениям столбца из него. Документация mysqli имеет примеры, и вы должны быть в состоянии найти много учебников в Интернете. – Barmar