将SQL查询结果存储到PHP数组中

问题描述 投票:0回答:1

我有一个两行表,其中包含一个登录页面的ID和PIN,但是登录时,他们除了PIN外没有输入其他任何内容,因此我无法在没有找到匹配项的情况下将ID用于密码验证从他们输入的密码到存储的内容。

这里是桌子:

mysql> select * from Family;
+-----------+--------------------------------------------------------------+
| Family_ID | PIN                                                          |
+-----------+--------------------------------------------------------------+
|         1 | 1234                                                         |
|         2 | 7777                                                         |
|         3 | 30756                                                        |
|         4 | 4444                                                         |
|         5 | 2222                                                         |
|         6 | 3333                                                         |
|         7 | 1111                                                         |
|         8 | 5555                                                         |
|         9 | $2y$10$SZgvvB7WG.gXB/AUbWeIOO8HnBit6F7fG.My/Pcyi4D0zXgb3/n3G |
|        10 | 2856                                                         |
+-----------+--------------------------------------------------------------+
10 rows in set (0.00 sec)

我正在对所有PIN进行哈希处理,并将哈希与输入的内容进行比较,我需要ID,但我不知道如何获取它。

这是我正在尝试的方法,将不断浏览,直到他们键入的内容与存储的PIN匹配或位于其中一个哈希值中为止。我不完全知道如何通过数组存储和检索结果,然后根据需要循环。我敢肯定这很简单,但我一无所知。

//boolean to see if PIN is in hash, wont work without a username to begin with

    $PIN= $_POST['PIN'];
    $result = mysql_query("SELECT PIN FROM Family");

    while ($row = mysql_fetch_array($result, MYSQL_NUM)) { //fetch all PINs from DB and store in array

       if( $flag = password_verify($PIN, $row[])){ //$row = the PIN from the query result

       } // boolean to see if PIN is in hash

    }
php mysql sql hash
1个回答
0
投票

$row是一个数组,每个数字索引对应于查询中的列位置。在这种情况下,PIN为$row[0]

您确定此设计是正确的吗? PIN保证是唯一的(如果是,则您的数据库约束与此匹配)?

© www.soinside.com 2019 - 2024. All rights reserved.