php select 来自数据库的行

php select row from database

我有一个名为 tbl_stats 的数据库,其中包含一个列 (UUID) 和一个用户 ID 列表。

我正在尝试创建一个脚本,其中 http://domain.com/index.php?cid=874365 显示仅包含该用户行中的值的页面。

我当前的代码连接到数据库,但始终显示顶行的信息,无论 ?cid= 是什么。

我当前的代码:

<?php
 error_reporting( E_ALL & ~E_DEPRECATED & ~E_NOTICE );
    ob_start();
    session_start();

    define('DB_DRIVER', 'mysql');
    define('DB_SERVER', 'localhost');
    define('DB_SERVER_USERNAME', '[REDACTED]');
    define('DB_SERVER_PASSWORD', '[REDACTED]');
    define('DB_DATABASE', '[REDACTED]');


    $dboptions = array(
                  PDO::ATTR_PERSISTENT => FALSE, 
                  PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, 
                  PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
                  PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
                );

    try {
      $DB = new PDO(DB_DRIVER.':host='.DB_SERVER.';dbname='.DB_DATABASE, DB_SERVER_USERNAME, DB_SERVER_PASSWORD , $dboptions);  
    } catch (Exception $ex) {
      echo $ex->getMessage();
      die;
    }

    //get error/success messages
    if ($_SESSION["errorType"] != "" && $_SESSION["errorMsg"] != "" ) {
        $ERROR_TYPE = $_SESSION["errorType"];
        $ERROR_MSG = $_SESSION["errorMsg"];
        $_SESSION["errorType"] = "";
        $_SESSION["errorMsg"] = "";
    }

        try {
           $cid = intval($_GET['cid']);
           $sql = "SELECT * FROM tbl_stats WHERE 1 AND UUID=$cid";
           $stmt = $DB->prepare($sql);
           $stmt->bindValue(":cid", $cid);

           $stmt->execute();
           $results = $stmt->fetchAll();
        } catch (Exception $ex) {
          echo $ex->getMessage();
        }

        ?>

然后为了引用页面上的信息,我使用以下内容:

<?php echo $results[0]["username"] ?>

您需要在 SQL 语句中添加占位符

       $sql = "SELECT * FROM tbl_stats WHERE UUID=:cid";

非常感谢大家的帮助!

感谢您,成功解决了这个问题!

    try {
   $cid = $_GET['cid'];
   $sql = "SELECT * FROM tbl_stats WHERE UUID=:cid";
   $stmt = $DB->prepare($sql);
   $stmt->bindValue(":cid", $cid);

   $stmt->execute();
   $results = $stmt->fetchAll();
} catch (Exception $ex) {
  echo $ex->getMessage();
}