使用SQL使用PHP从数据库检索数据-使用DISTINCT时出错

使用SQL使用PHP从数据库检索数据-使用DISTINCT时出错,php,mysql,Php,Mysql,下面是一段有问题的代码: <?php include_once("database.php"); $getmtn = $db->prepare("select distinct from mount_category"); $getmtn->execute(); $getCategory=$getmtn->fetchAll(PDO::FETCH_OBJ);

下面是一段有问题的代码:

      <?php 
            include_once("database.php");

            $getmtn = $db->prepare("select distinct from mount_category");
            $getmtn->execute();
            $getCategory=$getmtn->fetchAll(PDO::FETCH_OBJ);

            foreach($getCategory as $cat)
            echo"<a href='$cat->category.php'>
              <div class='col-lg-4 col-md-6 mb-4' data-aos='fade-up'>
                <div class='listing-item'>
                  <div class='listing-image'>
                    <img src='images/$cat->category.jpg' alt='Image' class='img-fluid'>
                  </div>
                  <div class='listing-item-content'>
                    <h2 class='mb-1'><a href=''>$cat->category</a></h2>
                    <a class='px-4 mb-1 category bg-primary' href='$cat->category.php'>Read More</a>
                  </div>
                </div>
              </div></a>"
            ?>
代码将很好地工作

但是当我写作的时候

$getmtn = $db->prepare("select distinct from mount_category");

页面未按其应加载的方式加载,而是显示以下错误:


Fatal error
: Uncaught PDOException: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from mount_category' at line 1 in /home/60093552/public_html/mnkljmnk/mnkljmnk/mnkljmnk/OPEN INDEX FIRST/category.php:91 Stack trace: #0 /home/60093552/public_html/mnkljmnk/mnkljmnk/mnkljmnk/OPEN INDEX FIRST/category.php(91): PDO->prepare('select distinct...') #1 {main} thrown in
/home/60093552/public_html/mnkljmnk/mnkljmnk/mnkljmnk/OPEN INDEX FIRST/category.php
on line
91

第91行是“distinct/*”行。

MySQL中保留了
distinct
关键字,您需要使用反勾号来防止这种情况

$getmtn = $db->prepare("select `distinct` from mount_category");

如果我理解不正确,并且您的表中没有不同的列,那么您需要指定一列。
distinct
关键字充当特定列的唯一筛选器,因此您必须指定一列。

您在失败的查询中忘记了
*
。(或者指定要选择的列。)是的,我没有一个名为“distinct”的列,我只是想检索数据而不重复它。谢谢,成功了。以下是访问此问题的用户的固定代码:
$getmtn=$db->prepare(“从mount_类别中选择不同类别”)$getmtn->execute()$getCategory=$getmtn->fetchAll(PDO::FETCH_OBJ)
$getmtn = $db->prepare("select `distinct` from mount_category");