$ _GET没有传递给SELECT查询

RaG*_*940 1 php mysql select pdo get

我有一个带有超链接的页面,就像这样:

预习

单击A0000000时,它会将您重定向到localhost/student.php?anum = A00000000

我已检查是否正在使用实际号码

$get = $_GET['anum'];
echo $get;
Run Code Online (Sandbox Code Playgroud)

这就是我得到的: 预习

我之前已经多次这样做但是改变的一件事是现在我使用内连接和WHERE子句来进行特定搜索.这个搜索必须做的是:

  1. 列出一个名为NOT NULL的学生
  2. 完成时= 1
  3. 并且anum或学生ID号码=使用$ _GET ['anum']的url anum

这是select语句:

$anum = filter_input(INPUT_GET, 'anum', FILTER_SANITIZE_STRING);
$anum = filter_var($anum, FILTER_SANITIZE_NUMBER_INT);

    try 
    {
    $query = $dbh->prepare("SELECT * FROM inoffice INNER JOIN comments ON 
                            inoffice.id = comments.id WHERE counselorname 
                            IS NOT NULL AND finished = '1' AND anum = :anum ");
    $query->bindParam(':anum', $anum);
    $query->execute();
    $result = $query->fetchall();
    }
        catch (PDOException $e) {
        error_log($e->getMessage());
        die($e->getMessage());
        }
Run Code Online (Sandbox Code Playgroud)

我只是通过放置anum = A0000000尝试相同的查询,它完美无缺.

但是当我尝试做上面的代码时,我得到一个空的echo'd表.

任何帮助都是极好的! - ty

编辑1:谢谢你神秘删除过滤器代码的消毒部分,什么不是,一切正常.那就是从实际的数字部分中删除A. 所以查询没有通过.

cry*_*c ツ 10

$anum = filter_var($anum, FILTER_SANITIZE_NUMBER_INT);
Run Code Online (Sandbox Code Playgroud)

正在剥离这封信 'A'

根据文件:

FILTER_SANITIZE_NUMBER_INT - 删除除数字,加号和减号之外的所有字符.