Использование mysql_*
функций - очень плохая практика, потому что они устарели в течение многих лет.Поскольку вы находитесь на этапе обучения, лучше всего сосредоточиться на изучении того, как использовать подготовленные утверждения, будь то в форме mysqli или PDO , и придерживайтесь этого.
Что касается рассматриваемой проблемы, то код, который вы дали, является расплывчатым, а вещи, необходимые для отправки запроса, такие как соединение, отсутствуют.Поэтому мой ответ направлен на то, чтобы научить вас правильно использовать mysqli
подготовленные высказывания, а не дать вам полноценное решение.
Код:
<?php
# Establish a connection to the database.
$connection = new mysqli("your host", "your username", "your password", "your db");
# Create a mysqli query.
$query = "SELECT * FROM `blocked_accounts` WHERE `blocker_id` = ?";
# Prepare the query and check whether the operation was successful.
if ($stmt = $connection -> prepare($query)) {
# Bind the parameters to the statement.
$stmt -> bind_param("i", $id); # 'i' means integer
# Execute the statement and check whether the operation was successful.
if ($stmt -> execute()) {
# Get the result out of the statement and cache it.
$result = $stmt -> get_result();
# Close the statement.
$stmt -> close();
# Fetch the first row (use 'while' if you want more).
if ($row = $result -> fetch_assoc()) {
# Check whether the user is blocked...
}
}
}
# Shut down the database connection.
$connection -> close();
?>
Примечания:
- Когда вы пытаетесь выполнить запрос к базе данных, не забудьте использовать фактическое установленное вами соединение.При вызове функции
mysql_query
соединение не передается. - Часть
&& $rr['blocker_id'] == $id
в проверке if
является избыточной, поскольку значение $id
является значением, которое мы использовали для фильтрации возвращаемых результатов.по базе данных, поэтому всегда будет true
.