使用PHP函数获取数据库值

使用PHP函数获取数据库值,php,function,mysqli,Php,Function,Mysqli,这里有一个我创建的函数。当我使用postgres数据库时,它工作正常,但一旦我切换到mysqli,出于某种原因,它不会返回id。以下是我的函数: function getAccID($connection, $username){ $res = mysqli_query($connection, "SELECT accounts_id FROM people WHERE people.username ='$username'"); if ($res){ $row

这里有一个我创建的函数。当我使用postgres数据库时,它工作正常,但一旦我切换到mysqli,出于某种原因,它不会返回id。以下是我的函数:

function getAccID($connection, $username){
    $res = mysqli_query($connection, "SELECT accounts_id FROM people WHERE people.username ='$username'");
    if ($res){
        $row = mysqli_fetch_assoc($res);
        if ($row){
            return ($row[0]);
        }
    }else{
        //handle the error
    }

}
$accountID = getAccID($connection, $user);
$p->addContent("Account ID: $accountID");
if (!$accountID) $p->addContent('Error: ' . mysqli_error($connection) . "<br>");
下面是我如何声明函数的:

function getAccID($connection, $username){
    $res = mysqli_query($connection, "SELECT accounts_id FROM people WHERE people.username ='$username'");
    if ($res){
        $row = mysqli_fetch_assoc($res);
        if ($row){
            return ($row[0]);
        }
    }else{
        //handle the error
    }

}
$accountID = getAccID($connection, $user);
$p->addContent("Account ID: $accountID");
if (!$accountID) $p->addContent('Error: ' . mysqli_error($connection) . "<br>");
必须是:

$row["name_of_field"];

当您使用mysqli\u fetch\u assoc时

$行应具有字段的名称


使用$row['id']而不是$row[0]

(如果要“测试”某个东西,为什么不测试将要使用的实际东西?),因为我喜欢边测试边测试。这就是我的工作方式。使用查询比使用准备好的语句更容易进行测试。(如果您要切换到其他语句,则不进行测试;这是一个不合适的模拟场景。)总之,1)在“处理错误”中做一些事情,然后;2) 很明显,结果是您认为的结果-即有结果,并且您在所述行中返回所需的值(我看到可疑的
if
,而不是传统的
while
,并且没有
$row[“accounts\u id”]
)。现在,由于执行流路径不完整,或者可能“失败”,这将导致意外的结果——主要是没有有用的返回值。我刚刚明白了这一点,正要发布响应。哈哈,不管怎样,谢谢。对于其他有这个问题的人,这是正确的答案。