0

true我设置了一个小的 web 服务,如果它在数据库上找到用户,如果它没有找到,它应该返回false。但它总是回归false。事实上,如果我echoforeach它上面的东西不会返回任何东西,并且如果我回显$data我得到Undefined variable: data

我试过用id搜索,好像没问题

例如,如果我使用 的路线进行测试/api/users/login/{id},并将其更改foreachforeach($db->user()->select('username', 'pass')->where('id', $id) as $row) 它将正确执行。

$app->get('/api/users/login/{username}/{password}', function($request){
    $username = $request -> getAttribute('username');
    $password = $request -> getAttribute('pass');
    $id = $request->getAttribute('id');
    require_once('db/dbconnect.php');

    foreach($db->user()->select('username', 'pass')->where('username', 'pass', $username, $password) as $row){
        $data[] = $row;
    }



    if(isset($data)){
        echo json_encode(true, JSON_UNESCAPED_UNICODE);
    }else{
        echo json_encode(false, JSON_UNESCAPED_UNICODE);
    }


});

问题是我要从路由中获取字符串吗?如果是这样,我该如何纠正?

4

1 回答 1

1

您的使用where()不正确,您应该在一系列条件下使用它。

api

$table->where(array("field" => "x", "field2" => "y"))

转换为field = 'x' AND field2 = 'y'(自动转义)

$db->user()->select('username', 'pass')->where([
    'username' => $username,
    'pass' => $password
])
于 2019-03-26T14:23:12.600 回答