gpt4 book ai didi

php - 在类中获取未知错误

转载 作者:行者123 更新时间:2023-12-03 09:14:33 26 4
gpt4 key购买 nike

我试图为我的网站制作一个基于 token 的系统,并且我是在 php 中制作类的新手。当我在 check 内运行 PDO 查询时功能页面停止工作。

<?php 

date_default_timezone_set("Europe/Copenhagen");
include_once ("../connect.php");

class userToken {

public $token;

public $tokenid;
public $userId;
public $expire;

function __construct($t) {
$this->tokken = $t;
$this->check();

}

public function check() {
try {

$checkToken = $DBH->prepare("
SELECT *
FROM token
WHERE token = :token
LIMIT 1
");

$checkToken->execute(array(':token' => "186382asd"));

} catch(PDOException $e) {

echo $e->getMessage();
echo '[{"error":true"}]';
exit();

}
return "done";

}

}

$test = new userToken("186382asd");

echo $test->token;
?>

最佳答案

代码中的几乎所有内容都不起作用;

  • $dbh在您的 check 中不存在方法。
  • 构造函数中的错字tokken
  • 你没有设置$this->token
  • 您注入(inject)的 token 没有传递给方法,因此您的查询不是动态的

  • 我已经重新格式化了代码;
    // -- connect.php
    error_reporting(E_ALL);
    $dbh = new PDO($dsn, $user, $pass);
    // -- yourfile.php
    $token = '186382asd';
    $object = new UserToken($dbh);
    var_dump($object->check($token)); // result or false

    class UserToken {

    public function __construct($dbh) {
    $this->dbh = $dbh;
    }

    public function check($token) {
    try {
    $stmt = $this->dbh->prepare("
    SELECT *
    FROM token
    WHERE token = :token
    LIMIT 1
    ");
    return $stmt->execute(array(':token' => $token));
    } catch (PDOException $e) {
    echo $e->getMessage();
    echo '[{"error":true"}]';
    }
    }

    }

    关于php - 在类中获取未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31574071/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com