好吧,我已经厌倦了。过去一周,我花了大部分空闲时间试图解决这个问题。我知道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"];?>
我尝试过很多事情,所以我遇到了很多不同的错误。我希望有人能在这里指出我正确的方向。这样做的最佳方式是什么?
答案 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
个对象。