如何使用PHP从MySQL检索特定值?

时间:2016-03-03 18:31:08

标签: php mysql

好吧,我已经厌倦了。过去一周,我花了大部分空闲时间试图解决这个问题。我知道SQL中的查询已经改变但我无法弄明白。我能找到的所有其他帖子似乎都已经过时了。如果有人能帮助我,我会非常感激。

我要做的就是使用唯一的"密码"来检索行的id。我手动输入数据库,然后将其设置为会话数据,以便我可以在其他页面上使用该数据。我觉得不应该这么难。

出于演示的目的,这里是使用较旧的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"];?>

我尝试过很多事情,所以我遇到了很多不同的错误。我希望有人能在这里指出我正确的方向。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

首先,请勿使用mysql API;它已被弃用,并且在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个对象。