Как получить определенное значение из MySQL с PHP?

Хорошо, мне так надоело. Я потратил большую часть своего свободного времени на прошлую неделю, пытаясь понять это. Я знаю, что запрос изменился в SQL, но я не могу понять это. Все остальные сообщения, которые я могу найти, кажутся устаревшими. Если бы кто-нибудь мог мне помочь, я бы очень признателен.

Все, что я пытаюсь сделать, это получить идентификатор строки, используя уникальную «кодовую фразу», которую я вручную ввел в базу данных, а затем установить ее как данные сеанса, чтобы я мог использовать эти данные на других страницах. Я чувствую, что это не должно быть так сложно.

Для целей демострации здесь приведен мой код с использованием более старой mysql_query.

<?php $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'test321'; $db = 'local_test'; $conn = mysql_connect($dbhost,$dbuser,$dbpass); mysql_select_db($db); ?> <?php include 'includes/connection.php'; $pass = $_POST['inputPass']; if(!$_POST['submit']) { echo "please fill out the form"; header ('location: user_authenticate.php'); } $query = "SELECT id FROM users WHERE pass= '$pass'"; $id = mysql_query($query); $_SESSION["userId"] = "$id"; print $pass; print $id; print $_SESSION["userId"];?> 

Я пробовал много вещей, поэтому у меня появилось много разных ошибок. Я надеюсь, что кто-то может указать мне в правильном направлении. Каков наилучший способ сделать это?

Во-первых, не используйте API mysql ; он устарел и не будет работать на PHP 7.

Теперь, когда это не работает, mysql_query() возвращает ресурс набора результатов (который похож на объект), который может содержать несколько строк, которые могут содержать несколько столбцов . Чтобы получить доступ к содержимому этого ресурса, вы должны fetch строку в массив, а затем индексировать в этот массив для нужного столбца. Вам нужно сделать что-то вроде этого:

 $query = "SELECT id FROM users WHERE pass= '$pass'"; $result = mysql_query($query); $row = mysql_fetch_assoc($result); $id = $row['id']; 

а затем вы можете использовать значение $id .

То же самое относится к mysqli::query() , который возвращает объект mysqli_result .